【ビルドマシン】
デバッグ用ビルド(-O0 -gオプション付きでコンパイル。)
□libMyLibrary
□chkcmd(ライブラリデバッグ用コマンド)
【ターゲットCPU】
□ファイアウォール停止(繋がらなかったら、ビルド、ターゲットCPU両方で。)
/etc/rc.d/init.d/iptables stop
□デバッグ用ライブラリに差し替え。
ファイルrelapce、またはlibMyLibrary.so→リンク先を変更。
※パーミッション注意 chmod a+rx libMyLibrary.so.1
□GDBサーバー起動
$ gdbserver ビルドマシン名:30000 chkcmd (ビルドマシン名はなくても良い!?)
【ビルドマシン】
GDB起動 (emacs上で動かした方が便利。)
$ gdb ./chkcmd
(gdb) br main
(gdb) target remote ターゲットCPU名(IPアドレス!?):30000
(gdb) c
(ブレークしたら、)
(gdb) set solib-search-path /home/user/src/libMyLibrary
(↑ライブラリビルドしたディレクトリへのパスを指定)
※↓表示される(他のエラーメッセージ無視)
Reading symbols from /home/user/src/libMyLibrary/libMyLibrary.1...done.
Loaded symbols for /home/user/src/libMyLibrary/libMyLibrary.1
(gdb) br MyLibraryStartAPI ※取り敢えず適当なライブラリ関数にブレークポイント設定
(gdb) c 後は自由に。
2009年9月16日水曜日
gdb(gdbserver)を使ったリモートCPUの共有ライブラリをデバッグする方法
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿