首页 > 代码库 > 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 调用 库文件错误查找方法