2

ホストOS(ubuntu 14.04 OS)で実行されているUbuntu 14.04コンテナーを使用して、gdbまたはその上でdockerデーモンコードをデバッグしてステップインしようとしています。コンテナー内でデバッグ バイナリをビルドするときにフラグをcgdb使用しました。-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)

ビルドされたバイナリが debug であることを確認するには? ツールを使用しreadelfてヘッダーを読み込んでこれを確認できますか?

GOPATH または GOROOT を特定のディレクトリに設定する必要がありますか?

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

私の環境で欠落している可能性のある他の依存関係はありますか?

4

0 に答える 0