のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

gdbclient2

build/envsetup.shのgdbclientをコピーしてgdbclient2を作成する。

function gdbclient2()
{
  〜〜〜〜〜〜gdbclientと同じなので省略〜〜〜〜〜
       echo >|"$OUT_ROOT/gdbclient.cmds" "set solib-absolute-prefix $OUT_SYMBOLS"
       echo >>"$OUT_ROOT/gdbclient.cmds" "set solib-search-path $OUT_SO_SYMBOLS:$OUT_SO_SYMBOLS/hw:$OUT_SO_SYMBOLS/ssl/engines:$OUT_SO_SYMBOLS/drm:$OUT_SO_SYMBOLS/egl:$OUT_SO_SYMBOLS/soundfx"
##       echo >>"$OUT_ROOT/gdbclient.cmds" "target remote $PORT"
       echo >>"$OUT_ROOT/gdbclient.cmds" ""

##       $ANDROID_TOOLCHAIN/$GDB -x "$OUT_ROOT/gdbclient.cmds" "$OUT_EXE_SYMBOLS/$EXE"
  else
       echo "Unable to determine build system output dir."
   fi
}
$ . build/envsetup.sh
$ lunch 12
$ setpaths
$ adb root
$ adb shell ps | grep system_server
$ gdbclient2 app_process :5039 389
$ cp $ANDROID_PRODUCT_OUT/gdbclient.cmds $ANDROID_BUILD_TOP/.gdbinit

Eclipse起動

  1. File>New>Project>C++Project
    1. Project name:cpp_proj
    2. Project type:EmptyProject
    3. Finish
  2. Run>Debug Configurations
    1. C/C++ Attach to Application>右クリック>New
    2. cpp_prjDebug
      1. Main 特になし
      2. Debugger
        1. Debugger: gdbserver
          1. Main
            1. GDB debugger: /home/m_fujii/JB422R1/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gdb
            2. GDB command file: .gdbinit
          2. Connection
            1. Port number: 5039
  3. Debugボタンをクリックする。
  1. Consoleからgdbコマンドを実行する。
    1. source ~/JB422R1/.gdbinit
その他
$ which arm-eabi-gdb
/home/m_fujii/JB422R1/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gdb

$ env | grep ANDROID_TOOLCHAIN
ANDROID_TOOLCHAIN=/home/m_fujii/JB422R1/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin