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

I am trying to debug a Go-program using gdb and setting breakpoints works normally in all packages, except for one. In my src-folder I have 3 subfolders that each contain packages:

  • crawler/
    • crawler.go
  • model/
    • page.go
  • urlutils/
    • urlutils.go

I cannot set a breakpoint in page.go on any line as it gives me the following error:

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

I do not understand why this is happening with only this one package. "model/page" is also an import in the file that contains the main function and is used when the program runs, so it must be in the executable. Does anyone have an idea?

I found a solution:

I needed to add a flag to my go build command:

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

This disables the code optimization performed by the go compiler which lead to my breakpoint working. The paths were correct and also the absolute path didn't work.

Nevertheless, thank you tomwilde for pointing me into a direction.