【问题标题】:Can't set breakpoint in GDB with Golang due to error "no source file named model/page.go"由于错误“没有名为 model/page.go 的源文件”,无法使用 Golang 在 GDB 中设置断点
【发布时间】:2013-10-16 01:52:37
【问题描述】:

我正在尝试使用 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函数的文件中的import,在程序运行时使用,所以必须在可执行文件中。有人有想法吗?

【问题讨论】:

标签: gdb go package breakpoints


【解决方案1】:

我找到了解决办法:

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

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

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

不过,感谢汤姆维尔德为我指明了一个方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多