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 7package base 8 9// Debug holds the parsed debugging configuration values. 10var 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. 18type 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"` 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"` 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 GCProg int `help:"print dump of GC programs"` 29 InlFuncsWithClosures int `help:"allow functions with closures to be inlined"` 30 Libfuzzer int `help:"enable coverage instrumentation for libfuzzer"` 31 LocationLists int `help:"print information about DWARF location list creation"` 32 Nil int `help:"print information about nil checks"` 33 NoOpenDefer int `help:"disable open-coded defers"` 34 PCTab string `help:"print named pc-value table\nOne of: pctospadj, pctofile, pctoline, pctoinline, pctopcdata"` 35 Panic int `help:"show all compiler panics"` 36 Slice int `help:"print information about slice compilation"` 37 SoftFloat int `help:"force compiler to emit soft-float code"` 38 SyncFrames int `help:"how many writer stack frames to include at sync points in unified export data"` 39 TypeAssert int `help:"print information about type assertion inlining"` 40 TypecheckInl int `help:"eager typechecking of inline function bodies"` 41 Unified int `help:"enable unified IR construction"` 42 UnifiedQuirks int `help:"enable unified IR construction's quirks mode"` 43 WB int `help:"print information about write barriers"` 44 ABIWrap int `help:"print information about ABI wrapper generation"` 45 MayMoreStack string `help:"call named function before all stack growth checks"` 46 47 Any bool // set when any of the debug flags have been set 48} 49 50// DebugSSA is called to set a -d ssa/... option. 51// If nil, those options are reported as invalid options. 52// If DebugSSA returns a non-empty string, that text is reported as a compiler error. 53var DebugSSA func(phase, flag string, val int, valString string) string 54