手動でgdb
$ ndk-gdb --verbose
サーチパスがセットされていても、シンボルが読み込めていない。
(gdb) show solib-search-path
.he search path for loading non-absolute shared library symbol files is ./obj/local/armeabi
シンボルが読み込めていないときの例
(gdb)info functions
All defined functions:Non-debugging symbols:
0x00008c00 __aeabi_llsl
0x00008c1c __popcountdi2
シンボルが読み込めているときの例。
info function
All defined functions:File /tmp/ndk-digit/src/build/../gcc/gcc-4.4.3/libgcc/../gcc/config/arm/unwind-arm.c:
File /tmp/ndk-digit/src/build/../gcc/gcc-4.4.3/libgcc/../gcc/config/arm/pr-support.c:
File D:/Users/m_fujii/Documents/69_HelloJni/trunk/workspace/HelloJni/jni/hello-jni.c:
jstring Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv *, jobject);Non-debugging symbols:
0x00008c00 __aeabi_llsl
0x00008c1c __popcountdi2
0x4005afd0 _exit
0x4005afec _exit_thread
〜略〜
0x400887c8 bcopy
0x400888d4 strncmp
0x58724c18 __on_dlclose
サーチパスのセット
(gdb)set solib-search-path ./obj/local/armeabi
〜略〜
Reading symbols from HelloJni/./obj/local/armeabi/libhello-jni.so...done.
Loaded symbols for HelloJni/./obj/local/armeabi/libhello-jni.so
〜略〜
(gdb) p Java_com_example_hellojni_HelloJni_stringFromJNI $1 = {jstring (JNIEnv *, jobject)} 0x58724c28 <Java_com_example_hellojni_HelloJni_stringFromJNI> (gdb) break *0x58724c28 Breakpoint 1 at 0x58724c28: file D:/Users/m_fujii/Documents/69_HelloJni/trunk/workspace/HelloJni/jni/hello-jni.c, line 29. (gdb) c Continuing. [New Thread 28092] [Switching to Thread 28092] Breakpoint 1, Java_com_example_hellojni_HelloJni_stringFromJNI (env=0xf2c0, thiz=0x128d0) at D:/Users/m_fujii/Documents/69_HelloJni/trunk/workspace/HelloJni/jni/hello-jni.c:29 29 { (gdb)