我是golang的新手。我正在调试我的go应用程序。
当我试图运行" info goroutines"时,它抛弃了:
Undefined info command: "goroutines".
Try "help info
我在gdb配置中错过了什么?
答案 0 :(得分:2)
文章“Debugging Go Code with GDB”确实提到:
(gdb) info goroutines
但仅限于为给定二进制文件加载扩展脚本的上下文中。
工具链使用它来扩展GDB,使用一些命令来检查运行时代码的内部(例如goroutines),并且可以打印内置的地图,切片和通道类型。
如果您想查看其工作原理或想要扩展它,请查看Go源代码分发中的src/pkg/runtime/runtime-gdb.py。
它取决于一些特殊的魔术类型(hash<T,U>
)和变量(runtime.m
和runtime.g
),链接器(src/cmd/ld/dwarf.c
)确保在DWARF代码中描述。如果您对调试信息的内容感兴趣,请运行“
objdump -W 6.out
”并浏览.debug_ *部分。
因此,请确保在激活这些扩展程序的情况下运行调试会话。
答案 1 :(得分:0)
在 gdb 会话中运行
source $GOROOT/src/runtime/runtime-gdb.py
$GOROOT 所在的位置(参见 go env | grep ROOT
)
您应该按照 golang 文档的建议使用 https://github.com/go-delve/delve https://golang.org/doc/gdb