类似以下日志:
2022-07-28 08:57:53.614 8856-8856/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2022-07-28 08:57:53.614 8856-8856/? A/DEBUG: Build fingerprint: 'Verizon/gts4lltevzw/gts4lltevzw:10/QP1A.190711.020/T837VVRU5CUE2:user/release-keys'
2022-07-28 08:57:53.614 8856-8856/? A/DEBUG: Revision: '7'
2022-07-28 08:57:53.614 8856-8856/? A/DEBUG: ABI: 'arm64'
2022-07-28 08:57:53.618 8856-8856/? A/DEBUG: Timestamp: 2022-07-28 08:57:53+0800
2022-07-28 08:57:53.618 8856-8856/? A/DEBUG: pid: 4867, tid: 4867, name: exe.eginedemo>>> com.exe.eginedemo<<<
2022-07-28 08:57:53.618 8856-8856/? A/DEBUG: uid: 10248
2022-07-28 08:57:53.618 8856-8856/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x656e69676e4565
2022-07-28 08:57:53.618 8856-8856/? A/DEBUG: x0 0000000000000000 x1 0000000000000000 x2 0000000000000000 x3 0000000000000000
2022-07-28 08:57:53.618 8856-8856/? A/DEBUG: x4 0000000000000000 x5 0000007fc34a93d8 x6 0000007cdbf74618 x7 0000007cdbf74618
2022-07-28 08:57:53.618 8856-8856/? A/DEBUG: x8 00656e69676e4565 x9 00656e69676e4565 x10 0000000000000000 x11 0000000000000000
2022-07-28 08:57:53.618 8856-8856/? A/DEBUG: x12 0000000009950238 x13 546e69616d286572 x14 0000000000000030 x15 0000000000000010
2022-07-28 08:57:53.618 8856-8856/? A/DEBUG: x16 0000007cdc136f80 x17 0000007d71042f70 x18 0000000000000001 x19 0000007d72e75000
2022-07-28 08:57:53.618 8856-8856/? A/DEBUG: x20 0000000000000000 x21 0000007d72e75000 x22 0000007fc34a9c40 x23 0000007d70d5e172
2022-07-28 08:57:53.619 8856-8856/? A/DEBUG: x24 0000000000000008 x25 0000007d73009020 x26 0000007d72e750b0 x27 0000000000000002
2022-07-28 08:57:53.619 8856-8856/? A/DEBUG: x28 0000007fc34a99d0 x29 0000007fc34a96a0
2022-07-28 08:57:53.619 8856-8856/? A/DEBUG: sp 0000007fc34a9660 lr 0000007cdbeb1354 pc 0000007cdbeb1378
2022-07-28 08:57:53.874 8856-8856/? A/DEBUG: backtrace:
2022-07-28 08:57:53.875 8856-8856/? A/DEBUG: #00 pc 000000000014b378 /data/app/com.exe.eginedemo-eSDAalHRX4Z1y3FceKgZfg==/base.apk!libEngine.so (offset 0x1d6000)
2022-07-28 08:57:53.875 8856-8856/? A/DEBUG: #01 pc 000000000014b814 /data/app/com.exe.eginedemo-eSDAalHRX4Z1y3FceKgZfg==/base.apk!libEngine.so (offset 0x1d6000)
2022-07-28 08:57:53.875 8856-8856/? A/DEBUG: #02 pc 000000000014aef0 /data/app/com.exe.eginedemo-eSDAalHRX4Z1y3FceKgZfg==/base.apk!libEngine.so (offset 0x1d6000)
2022-07-28 08:57:53.875 8856-8856/? A/DEBUG: #03 pc 00000000000e0c20 /data/app/com.exe.eginedemo-eSDAalHRX4Z1y3FceKgZfg==/base.apk!libEngine.so (offset 0x1d6000)
2022-07-28 08:57:53.875 8856-8856/? A/DEBUG: #04 pc 0000000000154dc0 /data/app/com.exe.eginedemo-eSDAalHRX4Z1y3FceKgZfg==/base.apk!libEngine.so (offset 0x1d6000)
2022-07-28 08:57:53.875 8856-8856/? A/DEBUG: #05 pc 0000000000158174 /data/app/com.exe.eginedemo-eSDAalHRX4Z1y3FceKgZfg==/base.apk!libEngine.so (offset 0x1d6000)
2022-07-28 08:57:53.875 8856-8856/? A/DEBUG: #06 pc 00000000001562b0 /data/app/com.exe.eginedemo-eSDAalHRX4Z1y3FceKgZfg==/base.apk!libEngine.so (offset 0x1d6000)
2022-07-28 08:57:53.875 8856-8856/? A/DEBUG: #07 pc 0000000000008ee4 /data/app/com.exe.eginedemo-eSDAalHRX4Z1y3FceKgZfg==/base.apk!libinkEngineNative.so (offset 0x11000)
查找步骤:
1、先配置addr2line工具环境:高级系统设置 -> 环境变量 -> path -> 新建
添加指令:arm-linux-androideabi-addr2line ---- 这个主要是用于查armabiv7a包的:
{sdk}\ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin
添加 指令:aarch64-linux-android-addr2line --- 这个主要是用于查arm64-v8a包的:
{sdk}\ndk-bundle\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin
若出现使用addr2line出现File format not recognized错误提示是因为平台包不对应,根据平台so切换上方的指令即可。
(多个地址用空格隔开)
arm-linux-androideabi-addr2line -f -e {so库的绝对路径} {address}
aarch64-linux-android-addr2line -f -e {so库的绝对路径} {address}
{address} 可以输入多个,已空格分开即可。address是上方日志中的#00 pc 之后的数值
查找出来的效果如下图:
screenshot-20220803-115716.png