• Damien Lespiau's avatar
    cmd/compile: provide a way to auto-discover -d debug keys · f9be63b9
    Damien Lespiau authored
    Currently one needs to refer to the sources to have a list of accepted
    debug keys. We can copy what 'ssa/help' does and introspect the list of
    debug keys to print a more detailed help:
    
        $ go tool compile -d help
        usage: -d arg[,arg]* and arg is <key>[=<value>]
    
        <key> is one of:
    
        	append    	print information about append compilation
        	closure   	print information about closure compilation
        	disablenil	disable nil checks
        	dclstack  	run internal dclstack check
        	gcprog    	print dump of GC programs
        	nil       	print information about nil checks
        	panic     	do not hide any compiler panic
        	slice     	print information about slice compilation
        	typeassert	print information about type assertion inlining
        	wb        	print information about write barriers
        	export    	print export data
        	pctab     	print named pc-value table
        	ssa/help  	print help about SSA debugging
    
        <value> is key-specific.
    
        Key "pctab" supports values:
        	"pctospadj", "pctofile", "pctoline", "pctoinline", "pctopcdata"
    
    For '-d help' to be discoverable, a hint is given in the -d flag
    description.
    
    A last thing, today at least one go file needs to be provided to get to
    the code printing ssa/help.
    
      $ go tool compile -d ssa/help foo.go
    
    Add a check so one can just do '-d help' or '-d ssa/help'
    
    Caught by trybot: I needed to update fmt_test.go as I'm introducing the
    usage of %-*s in a format string.
    
    Fixes #20041
    
    Change-Id: Ib2858b038c1bcbe644aa3b1a371009710c6d957d
    Reviewed-on: https://go-review.googlesource.com/41091
    Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarDavid Chase <drchase@google.com>
    f9be63b9
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang_org/x Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...