Go 使用gdb或cgdb调试docker deamon
我一直在尝试在主机操作系统(Ubuntu 14.04操作系统)上运行的Ubuntu 14.04容器上使用Go 使用gdb或cgdb调试docker deamon,go,docker,gdb,ubuntu-14.04,cgdb,Go,Docker,Gdb,Ubuntu 14.04,Cgdb,我一直在尝试在主机操作系统(Ubuntu 14.04操作系统)上运行的Ubuntu 14.04容器上使用gdb或cgdb调试并进入docker守护程序代码。在容器中构建调试二进制文件时,我使用了-O0-g标志 容器中使用的go版本: # go version go version go1.4.3 linux/amd64 我无法使用cgdb单步执行代码: <http://www.gnu.org/software/gdb/documentation/>. For help, type
gdb
或cgdb
调试并进入docker守护程序代码。在容器中构建调试二进制文件时,我使用了-O0-g
标志
容器中使用的go版本:
# go version
go version go1.4.3 linux/amd64
我无法使用cgdb
单步执行代码:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"... Reading symbols from bundles/1.9.0-dev/dynbinary/docker...done. (
gdb) b main.handleGlobalDaemonFlag
Breakpoint 1 at 0x497b30
(gdb) r daemon -D
Starting program: /go/src/github.com/docker/docker/bundles/1.9.0-dev/dynbinary/docker daemon -D
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff5a00700 (LWP 2775)]
[New Thread 0x7ffff51ff700 (LWP 2776)]
[New Thread 0x7ffff49fe700 (LWP 2777)]
Breakpoint 1, 0x0000000000497b30 in main.handleGlobalDaemonFlag ()
(gdb) n Single stepping until exit from function main.handleGlobalDaemonFlag, which has no line number information.
Breakpoint 1, 0x0000000000497b30 in main.handleGlobalDaemonFlag ()
(gdb) l 1 in /tmp/go-build212795923/github.com/docker/docker/pkg/term/_obj/_cgo_export.c
(gdb)
我的环境中是否缺少任何其他依赖项?您是否尝试使用gccgo(我不认为-O0
对于go工具链中的任何内容都是有效的选项)?。
root@6511af5b06c1:/go/src/github.com/docker/docker# echo $GOROOT
root@6511af5b06c1:/go/src/github.com/docker/docker# echo $GOPATH
/go:/go/src/github.com/docker/docker/vendor