1. 程式人生 > >java 調用 庫文件錯誤查找方法

java 調用 庫文件錯誤查找方法

read wan dir jin archive ctr object str doc

第一步首先找到 backtrace:keyword,然後找到都應的庫文件 出錯的地方 pc 0000088b /system/lib/libNDK_04.so (SayHello+98)。

08-13 17:08:28.041 I/DEBUG ( 163): backtrace:

08-13 17:08:28.041 I/DEBUG ( 163): #00 pc 00021fc0 /system/lib/libc.so (tgkill+12)
08-13 17:08:28.041 I/DEBUG ( 163): #01 pc 00013081 /system/lib/libc.so (pthread_kill+48)
08-13 17:08:28.041 I/DEBUG ( 163): #02 pc 00013295 /system/lib/libc.so (raise+10)
08-13 17:08:28.041 I/DEBUG ( 163): #03 pc 00011fc9 /system/lib/libc.so
08-13 17:08:28.041 I/DEBUG ( 163): #04 pc 00021874 /system/lib/libc.so (abort+4)
08-13 17:08:28.041 I/DEBUG ( 163): #05 pc 0004b11b /system/lib/libdvm.so (dvmAbort+78)
08-13 17:08:28.041 I/DEBUG ( 163): #06 pc 0002d454 /system/lib/libdvm.so (IndirectRefTable::get(void*) const+252)
08-13 17:08:28.041 I/DEBUG ( 163): #07 pc 0004f9b7 /system/lib/libdvm.so (dvmDecodeIndirectRef(Thread*, _jobject*)+30)
08-13 17:08:28.041 I/DEBUG ( 163): #08 pc 00051b75 /system/lib/libdvm.so

08-13 17:08:28.041 I/DEBUG ( 163): #09 pc 0000088b /system/lib/libNDK_04.so (SayHello+98)


第二步

arm-linux-androideabi-addr2line -C -f -e out/target/product/ndp959/symbols/system/lib/libNDK_04.so 0000088b

第三步

得到:

/home/hlwang/tian/Tshark/ndp959/development/samples/NDK_04/jni/Provider.c:118


定位到庫文件的那一行出錯。

第四步

慢慢改吧。


一些細節能夠參考:

http://doc.okbase.net/xyang81/archive/121689.html

http://blog.sina.com.cn/s/blog_702c2db50102vc2h.html

http://blog.csdn.net/lubeijing2008xu/article/details/37569809

http://blog.chinaunix.net/uid-58110-id-2733429.html

java 調用 庫文件錯誤查找方法