• Lorenzo Masini's avatar
    cmd/objdump: print Go code alongside assembly · 476f55fd
    Lorenzo Masini authored
    Added -S flag to print go source file line above corresponding disassembly:
    
    $ go tool objdump -S -s main.main fmthello
    TEXT main.main(SB) /home/rugginoso/Documents/src/go/src/cmd/objdump/testdata/fmthello.go
    func main() {
      0x47d450		64488b0c25f8ffffff	FS MOVQ FS:0xfffffff8, CX
      0x47d459		483b6110		CMPQ 0x10(CX), SP
      0x47d45d		7631			JBE 0x47d490
      0x47d45f		4883ec18		SUBQ $0x18, SP
      0x47d463		48896c2410		MOVQ BP, 0x10(SP)
      0x47d468		488d6c2410		LEAQ 0x10(SP), BP
    	Println("hello, world")
      0x47d46d		488d0563b00200		LEAQ 0x2b063(IP), AX
      0x47d474		48890424		MOVQ AX, 0(SP)
      0x47d478		48c74424080c000000	MOVQ $0xc, 0x8(SP)
      0x47d481		e81a000000		CALL main.Println(SB)
    }
      0x47d486		488b6c2410		MOVQ 0x10(SP), BP
      0x47d48b		4883c418		ADDQ $0x18, SP
      0x47d48f		c3			RET
    func main() {
      0x47d490		e8ebf1fcff		CALL runtime.morestack_noctxt(SB)
      0x47d495		ebb9			JMP main.main(SB)
    
    Execution time:
    
    $ time go tool objdump testdata/fmthello > /dev/null
    real	0m0.430s
    user	0m0.440s
    sys	0m0.000s
    
    $ time go tool objdump -S testdata/fmthello > /dev/null
    real	0m0.471s
    user	0m0.476s
    sys	0m0.012s
    
    Fixes #18245
    
    Change-Id: I9b2f8338f9ee443c1352efd270d3ba85e3dd9b78
    Reviewed-on: https://go-review.googlesource.com/37953
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    476f55fd
Name
Last commit
Last update
..
disasm.go Loading commit data...
elf.go Loading commit data...
goobj.go Loading commit data...
macho.go Loading commit data...
objfile.go Loading commit data...
pe.go Loading commit data...
plan9obj.go Loading commit data...