github.com/bir3/gocompiler@v0.3.205/src/cmd/compile/internal/base/debug.go (about) 1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Debug arguments, set by -d flag. 6 7 package base 8 9 // Debug holds the parsed debugging configuration values. 10 var Debug DebugFlags 11 12 // DebugFlags defines the debugging configuration values (see var Debug). 13 // Each struct field is a different value, named for the lower-case of the field name. 14 // Each field must be an int or string and must have a `help` struct tag. 15 // 16 // The -d option takes a comma-separated list of settings. 17 // Each setting is name=value; for ints, name is short for name=1. 18 type DebugFlags struct { 19 Append int `help:"print information about append compilation"` 20 Checkptr int `help:"instrument unsafe pointer conversions\n0: instrumentation disabled\n1: conversions involving unsafe.Pointer are instrumented\n2: conversions to unsafe.Pointer force heap allocation" concurrent:"ok"` 21 Closure int `help:"print information about closure compilation"` 22 DclStack int `help:"run internal dclstack check"` 23 Defer int `help:"print information about defer compilation"` 24 DisableNil int `help:"disable nil checks" concurrent:"ok"` 25 DumpPtrs int `help:"show Node pointers values in dump output"` 26 DwarfInl int `help:"print information about DWARF inlined function creation"` 27 Export int `help:"print export data"` 28 Fmahash string `help:"hash value for use in debugging platform-dependent multiply-add use" concurrent:"ok"` 29 GCAdjust int `help:"log adjustments to GOGC" concurrent:"ok"` 30 GCCheck int `help:"check heap/gc use by compiler" concurrent:"ok"` 31 GCProg int `help:"print dump of GC programs"` 32 Gossahash string `help:"hash value for use in debugging the compiler"` 33 InlFuncsWithClosures int `help:"allow functions with closures to be inlined" concurrent:"ok"` 34 InlStaticInit int `help:"allow static initialization of inlined calls" concurrent:"ok"` 35 InterfaceCycles int `help:"allow anonymous interface cycles"` 36 Libfuzzer int `help:"enable coverage instrumentation for libfuzzer"` 37 LocationLists int `help:"print information about DWARF location list creation"` 38 Nil int `help:"print information about nil checks"` 39 NoOpenDefer int `help:"disable open-coded defers" concurrent:"ok"` 40 NoRefName int `help:"do not include referenced symbol names in object file" concurrent:"ok"` 41 PCTab string `help:"print named pc-value table\nOne of: pctospadj, pctofile, pctoline, pctoinline, pctopcdata"` 42 Panic int `help:"show all compiler panics"` 43 Reshape int `help:"print information about expression reshaping"` 44 Shapify int `help:"print information about shaping recursive types"` 45 Slice int `help:"print information about slice compilation"` 46 SoftFloat int `help:"force compiler to emit soft-float code" concurrent:"ok"` 47 SyncFrames int `help:"how many writer stack frames to include at sync points in unified export data"` 48 TypeAssert int `help:"print information about type assertion inlining"` 49 TypecheckInl int `help:"eager typechecking of inline function bodies" concurrent:"ok"` 50 Unified int `help:"enable unified IR construction"` 51 WB int `help:"print information about write barriers"` 52 ABIWrap int `help:"print information about ABI wrapper generation"` 53 MayMoreStack string `help:"call named function before all stack growth checks" concurrent:"ok"` 54 PGOInlineCDFThreshold string `help:"cummulative threshold percentage for determining call sites as hot candidates for inlining" concurrent:"ok"` 55 PGOInlineBudget int `help:"inline budget for hot functions" concurrent:"ok"` 56 PGOInline int `help:"debug profile-guided inlining"` 57 58 ConcurrentOk bool // true if only concurrentOk flags seen 59 } 60 61 // DebugSSA is called to set a -d ssa/... option. 62 // If nil, those options are reported as invalid options. 63 // If DebugSSA returns a non-empty string, that text is reported as a compiler error. 64 var DebugSSA func(phase, flag string, val int, valString string) string