查看棧信息中 .so文件裏地址對應的方法名稱

在Android開發中,涉及到JNI時,有時會報告非常底層棧信息,在棧信息中 僅僅給出了.so文件出錯位置的地址,根本看不成問題所在,但是如果使用arm-eabi-addr2line 命令,就可以把地址信息轉換成方法名稱:

arm-eabi-addr2line 命令 在%ANDROID_SOURCE%\prebuilt\linux-x86\toolchain\arm-eabi-4.4.0\bin;


例如有如下的棧信息:

 

02-21 13:34:39.621 I/DEBUG   (   79): pid: 394, tid: 560  >>> android.process.media <<<
02-21 13:34:39.621 I/DEBUG   (   79): signal 11 (SIGSEGV), fault addr 4b98b000
02-21 13:34:39.621 I/DEBUG   (   79):  r0 4b98a054  r1 00000000  r2 00000e94  r3 4b98b000
02-21 13:34:39.621 I/DEBUG   (   79):  r4 00000000  r5 4b989f14  r6 9ea08104  r7 0029b0e5
02-21 13:34:39.621 I/DEBUG   (   79):  r8 4b98a564  r9 43ddfc68  10 43ddfc50  fp 00290840
02-21 13:34:39.621 I/DEBUG   (   79):  ip 9ea0816c  sp 4b9898c8  lr 9ea05393  pc afd1cde6  cpsr 20000030
02-21 13:34:39.621 I/DEBUG   (   79):  d0  0000004442880000  d1  3ff0000042880000
02-21 13:34:39.621 I/DEBUG   (   79):  d2  bfd3441350baf6de  d3  c1493000c1323800
02-21 13:34:39.621 I/DEBUG   (   79):  d4  4900000040dcb000  d5  000000000006e580
02-21 13:34:39.621 I/DEBUG   (   79):  d6  4515a00000000800  d7  40800000c48ee000
02-21 13:34:39.621 I/DEBUG   (   79):  d8  0000000000000000  d9  0000000000000000
02-21 13:34:39.621 I/DEBUG   (   79):  d10 0000000000000000  d11 0000000000000000
02-21 13:34:39.621 I/DEBUG   (   79):  d12 0000000000000000  d13 0000000000000000
02-21 13:34:39.621 I/DEBUG   (   79):  d14 0000000000000000  d15 0000000000000000
02-21 13:34:39.621 I/DEBUG   (   79):  scr 80000012
02-21 13:34:39.621 I/DEBUG   (   79):
02-21 13:34:39.661 I/DEBUG   (   79):          #00  pc 0001cde6  /system/lib/libc.so
02-21 13:34:39.661 I/DEBUG   (   79):          #01  pc 00005390  /system/lib/libdrm1.so
02-21 13:34:39.661 I/DEBUG   (   79):          #02  pc 0000321c  /system/lib/libdrm1.so

02-21 13:34:39.661 I/DEBUG   (   79):
02-21 13:34:39.661 I/DEBUG   (   79): code around pc:
02-21 13:34:39.661 I/DEBUG   (   79): afd1cdc4 429a3301 2000d1f4 46c0bd30 2a00b510

 

則執行以下命令:

arm-eabi-addr2line -f -e %ANDROID_SOURCE%/out/target/product/xxxxx/system/lib/libdrm1.so 00005390


返回結果就是該地址對應的方法名稱。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章