首页 > 代码库 > java 调用 库文件错误查找方法
java 调用 库文件错误查找方法
第一步首先找到 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 调用 库文件错误查找方法