gdb调试golang中的内部运行时信息(如:goroutine)

InfoGeeker · · 3341 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

最近使用Go写crawler,使用gdb后发现不能显示gorountine的信息。 查看了下golang的文档 https://golang.org/doc/gdb >A recent extension mechanism to GDB allows it to load extension scripts for a given binary. The tool chain uses this to extend GDB with a handful of commands to inspect internals of the runtime code (such as goroutines) and to pretty print the built-in map, slice and channel types. >If you'd like to see how this works, or want to extend it, take a look at src/runtime/runtime-gdb.py in the Go source distribution. It depends on some special magic types (hash<T,U>) and variables (runtime.m and runtime.g) that the linker (src/cmd/ld/dwarf.c) ensures are described in the DWARF code. source下/usr/local/go/src/runtime/runtime-gdb.py这个文件就可以了打印运行时一些信息了. 注意: ![info_goroutines](http://ww2.sinaimg.cn/large/744e593bgw1eruqpkm1lkj20ju03374r.jpg) 如果遇到上面这个错误, 直接下载 https://github.com/sokoide/go-gdb 这个里面的runtime-gdb.py进行替换。 另外提供一个tip, 由于每次source其实非常麻烦,所以gdb支持加载配置 ``` gdb -x gdb.config ``` gdb.config 可以加入你想要的语句,如: ``` source /usr/local/go/src/runtime/runtime-gdb.py ``` 本文来源: http://vimer.me/articles/gdb-debugging-golang-the-goroutine.html

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3341 次点击  
加入收藏 微博
1 回复  |  直到 2015-05-08 01:41:23
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传