Open cherrymui opened 5 years ago
+kalyanac@ -- I think you'd have the most context for the -disasm
output right now.
Thank you for sending the patch. I will test it and report any concerns.
@cherrymui Could you send a PR for this change? Thank you.
What version of pprof are you using?
If you are using pprof via
go tool pprof
, what's yourgo env
output? Go tip (8c10ce164f5b0244f3e08424c13666801b7c5973)If you run pprof from GitHub, what's the Git revision? tip (e84dfd68c163c45ea47aa24b3dc7eaa93f6675b1)
What operating system and processor architecture are you using?
Linux/AMD64
What did you do?
Disasm
is called with aSym
'sEnd
as the end address.Sym.End
is thevirtual address of last byte in sym (Start+size-1)
(internal/plugin/plugin.go:176) whereasDisasm
isstopping at (before) the end address
(internal/plugin/plugin.go:124), i.e.end
should be the address after the last instruction. I've seen the last instruction of a function not disassembled correctly, with both binutils and the Go objdump.The following patch fixes this. Sorry I don't know how to add a test for this.