我想用AMDuProf分析器分析我的程序,但设置根/源文件夹不起作用,分析器只显示反汇编代码。看起来,尽管(或连同)缺乏源代码,它也缺乏调试符号,因为函数的形式是processname<address offset>。是我做错了什么,还是错过了一些分析选项?我试着用“release”/debug选项构建程序,没有看到任何区别。
processname<address offset>
ztigrdn81#
我修好了。首先,我用导出的、未压缩的侏儒符号构建了应用程序:go build -gcflags="all=-N -l -E" -ldflags="-compressdwarf=false" -o main.exe下一步是使用cv2pdb工具将侏儒符号转换为.pdb,因为我在Windows上运行Profiler非常重要。它不工作,即使我指定的文件夹,分析器应该搜索该.pdb文件(Add Symbol File Location(s)字段)。我手动复制.PDB文件到Symbols Download Path字段下的文件夹中,它神奇地开始工作。编辑:似乎有什么特定的事情碰巧发生了。所以这可能会起作用,但可能不会。Edit2:Golang似乎正在使用DEBUG_STRIPPED标志执行。手动移除标志后,AMDuProf会正确显示符号。更多信息:https://community.amd.com/t5/server-gurus-discussions/amd-uprof-for-golang-on-windows10/m-p/606820/highlight/true#M1831
go build -gcflags="all=-N -l -E" -ldflags="-compressdwarf=false" -o main.exe
cv2pdb
Add Symbol File Location(s)
Symbols Download Path
DEBUG_STRIPPED
1条答案
按热度按时间ztigrdn81#
我修好了。首先,我用导出的、未压缩的侏儒符号构建了应用程序:
go build -gcflags="all=-N -l -E" -ldflags="-compressdwarf=false" -o main.exe
下一步是使用
cv2pdb
工具将侏儒符号转换为.pdb,因为我在Windows上运行Profiler非常重要。它不工作,即使我指定的文件夹,分析器应该搜索该.pdb文件(
Add Symbol File Location(s)
字段)。我手动复制.PDB文件到Symbols Download Path
字段下的文件夹中,它神奇地开始工作。编辑:似乎有什么特定的事情碰巧发生了。所以这可能会起作用,但可能不会。
Edit2:Golang似乎正在使用
DEBUG_STRIPPED
标志执行。手动移除标志后,AMDuProf会正确显示符号。更多信息:https://community.amd.com/t5/server-gurus-discussions/amd-uprof-for-golang-on-windows10/m-p/606820/highlight/true#M1831