b2g(FirefoxOS) eclipseでデバッグする方法(その2) eclipseの準備
android gdb debug - のねの日記
コマンドラインのgdbclientの方法を応用し、eclipseでデバッグ - のねの日記
linuxでのgdbclientの使い方 - のねの日記
eclipseを起動する。
AndroidのSDKからダウンロードする。
adt-bundle-linux-x86_64-20130219.zipをダウンロードすると、eclipseが含まれている。
(日付のバージョンは何でもいい)
- c/c++のperspectiveを開く
- Menu>File>New>C++Projectを作成する。
- [C++ Projectダイアログ]が開く
- Project name:は任意(ここでは、gdbcheckとする)
- Project Type:Executable: Empty Projectを選択。
- Finishボタンをクリック
- Projectを選択し、Menu>Run>Debug Configrationsをクリックする。
- [Debug Configrationsダイアログ]が開く。
- C/C++ Attach to Applicationをクリックし選択する。
- 右クリックでNewを選ぶ。Name:gdccheck Debugというプロファイルが作成される。
- [gdbcheck Debug]
- [Mainタブ] 特になし
- [Debuggerタブ]
- Debugger: gdbserverにする。
- [gdbcheck Debug]
$ ./run-eclipse.sh attach 43 <= gdbserverの準備 GECKO_PATH = /home/user01/B2G_emu/B2G/gecko B2G_DEBUG = 1 B2G_NOOPT = 1 GECKO_OBJDIR = /home/user01/B2G_emu/B2G/gecko/objdir-gonk-debug Attached; pid = 43 Listening on port 11043 <=ポート番号 eclipse.sh gdbserver ready. gdb:prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gdb gdbinit:/tmp/b2g.gdbinit.user01 prog:/home/user01/B2G_emu/B2G/gecko/objdir-gonk-debug/dist/bin/b2g tmpにb2g.gdbinit.user01のファイルが作成される。 $ cat /tmp/b2g.gdbinit.user01 set solib-absolute-prefix out/target/product/generic/symbols handle SIGPIPE nostop set solib-search-path /home/m_fujii/B2G_emu/B2G/gecko/objdir-gonk-debug/dist/bin :out/target/product/generic/symbols/system/lib :out/target/product/generic/symbols/system/lib/hw :out/target/product/generic/symbols/system/lib/egl :out/target/product/generic/symbols/system/bin :out/target/product/generic/system/lib :out/target/product/generic/system/lib/egl :out/target/product/generic/system/lib/hw :out/target/product/generic/system/vendor/lib :out/target/product/generic/system/vendor/lib/hw :out/target/product/generic/system/vendor/lib/egl target extended-remote :11043
gdbserverに接続できないときは、一度KILLする。
$ adb shell ps | grep gdbserver root 1991 1989 476 324 c0098770 0001a664 S gdbserver $ adb shell kill 1991 Terminated $ adb shell ps | grep gdbserver gdbserverのプロセスがないことを確認する。 もう一度接続するPIDを確認する。 $ adb shell ps | grep b2g root 43 1 191460 94324 ffffffff 40054360 S /system/b2g/b2g app_1912 1912 43 109452 55568 ffffffff 40054360 S /system/b2g/plugin-container gdbserverを接続する。 $ ./run-eclipse.sh attach 43