用GDB调试Go程序时加断点遇到的问题


我用GDB调试Go程序: go build -gcflags "-N -l" main.go ,然后 gdb main 。在gdb中打 run 命令可以正常输出程序结果。但是当我想加断点的时候:

b 16

这个时候gdb给我输出这个:


 No line 16 in file "/usr/local/go/src/pkg/runtime/rt0_darwin_amd64.s".

看起来gdb把想把断点加到 /usr/local/go/src/pkg/runtime/rt0_darwin_amd64.s 这个文件中去,但是我明明是用 gdb main 的,这是怎么回事?

gdb go debug

vinshin 10 years, 10 months ago

存在多个源码文件时,使用filename限定源码文件

比如:


 (gdb) break [<file-name>:]<func-name>
(gdb) break [<file-name>:]<line-num>

多多良 小伞 answered 10 years, 10 months ago

Your Answer