-1

如何通过源文件设置断点?我在 tmp.go 文件中有以下代码。

package main

func main() {
   a, b := 1, 2
   c := a + b
   println(c)

}

这有效

$ dlv debug ./tmp.go
(dlv) b main.main:1
Breakpoint 1 set at 0x105395d for main.main() ./tmp.go:4

但这失败了

$ dlv debug ./tmp.go
(dlv) b ./tmp.go:4
Command failed: Location "./tmp.go:4" not found

编辑:这有效

$ dlv debug ./tmp.go
(dlv) b tmp.go:4
Breakpoint 1 set at 0x105395d for main.main() ./tmp.go:4

任何想法我的环境可能有什么问题?

4

1 回答 1

2

任何想法我的环境可能有什么问题?


为什么要关闭这个问题?

题外话,因为...

寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建最小、完整和可验证的示例。

您没有提供 MCVE,所以我们只能猜测。

我们不main.go知道您的问题是什么,那么您希望我们如何知道您的问题是什么?


例如,只是一个猜测,使用 MCVE,

main.go

package main

func main() {
    a, b := 1, 2
    c := a + b
    println(c)
}

游乐场: https: //play.golang.org/p/i2D9uZnFlXn

输出:

$ go run main.go
3
$ dlv debug ./main.go
Type 'help' for list of commands.
(dlv) break main.main:4
Breakpoint 1 set at 0x454bda for main.main() ./main.go:7
(dlv) quit
$ dlv debug ./main.go
Type 'help' for list of commands.
(dlv) break main.go:4
Breakpoint 1 set at 0x454b9d for main.main() ./main.go:4
(dlv) quit
$ 

break main.main:4并且分别是 at和 atbreak main.go:4不是一回事。行号与文件、函数等相关。./main.go:7./main.go:4


于 2018-11-24T03:45:26.023 回答