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

第一步首先找到 backtrace:關鍵字,然後找到都應的庫文件 出錯的地方 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

發佈了137 篇原創文章 · 獲贊 110 · 訪問量 46萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章