由于错误“没有源文件名为model / page.go”,无法使用Golang在GDB中设置断点

时间:2013-10-15 09:46:01

标签: gdb go package breakpoints

我正在尝试使用gdb调试Go程序,并且设置断点在所有包中正常工作,除了一个。在我的src文件夹中,我有3个子文件夹,每个子文件夹都包含包:

  • 履带/
    • crawler.go
  • 模型/
    • page.go
  • urlutils /
    • urlutils.go

我无法在page.go中的任何一行设置断点,因为它会给我以下错误:

(gdb) break model/page.go:14
No source file named model/page.go.
Make breakpoint pending on future shared library load? (y or [n])

我不明白为什么只有这一个包发生这种情况。 “model / page”也是包含main函数的文件中的导入,在程序运行时使用,因此它必须位于可执行文件中。有没有人有想法?

1 个答案:

答案 0 :(得分:3)

我找到了解决方案:

我需要在go build命令中添加一个标志:

go build -gcflags "-N -l" launch.go

这会禁用go编译器执行的代码优化,这会导致我的断点工作。路径是正确的,绝对路径也不起作用。

尽管如此,谢谢tomwilde指点我的方向。