I want to profile my program with AMDuProf profiler, but setting root/source folder doesnt work and profiler show only disassembly code. It seems that despite (or together with) lacking source code it lacks debug symbols also as functions are in the form of processname<address offset>
.
Am i doing something wrong or missing some profiler option? I tried to build program with "release"/debug option and didnt see any difference.
I got it working. Firstly i built application with exported, uncompressed dwarf symbols:
go build -gcflags="all=-N -l -E" -ldflags="-compressdwarf=false" -o main.exe
Next step was to convert dwarf symbol to .pdb with cv2pdb
tool as it was quite important that i run profiler on Windows.
It wasnt working even despite i specified folder where profiler should search for that .pdb file (the Add Symbol File Location(s)
field). I copied .pdb file manually to the folder under Symbols Download Path
field at it magically started to work.
Edit: it seems that something specific happened and worked by chance. So this may work, but probably will not.
Edit2: it seems that Golang is making executable with DEBUG_STRIPPED
flag. When the flag is manually removed, AMDuProf is showing symbols correctly. More info: https://community.amd.com/t5/server-gurus-discussions/amd-uprof-for-golang-on-windows10/m-p/606820/highlight/true#M1831