编译具有可调试的执行程序需要注意下面命令。
go build 编译时需要增加 -gcflags=all="-N -l" 指令来关闭内联优化,方便接下来的调试。
若是 MacOS,在 go build 编译时需要增加 -ldflags=‘-compressdwarf=false‘ 指令。
若不禁止,则会出现 No symbol table is loaded. Use the "file" command. 的错误。
Go 编译默认为了减少二进制大小会默认压缩 DWARF 调试信息,但这会影响 gdb 的调试,因此需要将其关闭。