Android Navitve Crash 定位

来源:互联网 发布:淘宝的优惠券怎么领取 编辑:程序博客网 时间:2024/06/06 20:36

本文只适应于Android系统级别的开发,记录一下,没有源码不行。
异常日志如下:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***Build fingerprint: 'LeEco/LeMax2_CN/le_x2:6.0.1/FEXCNFN5902012151S/LE_X820_STATIONARY:user/release-keys'Revision: '0'ABI: 'arm64'pid: 14501, tid: 14554, name: Thread-8804  >>> com.letv.android.filemanager <<<signal 7 (SIGBUS), code 2 (BUS_ADRERR), fault addr 0x7f6d723514    x0   0000000000000001  x1   0000007f6c7c6820  x2   0000007f6b586948  x3   0000000000000001    x4   0000007f6b586950  x5   0000000000000000  x6   0000000000000001  x7   0000000000000001    x8   0000007f8ba56f20  x9   00000000ffffffff  x10  0000000000000001  x11  00000000d000000d    x12  0000000000003800  x13  0000007f8bbdc000  x14  0000007f6c63b7e0  x15  0000000000000001    x16  0000007f8bf56e00  x17  0000007f8bf39cbc  x18  0000000000000004  x19  0000007f6c63b7e0    x20  0000000000000000  x21  0000007f6c63b7e0  x22  00000000000d1be0  x23  0000000000000000    x24  0000007f87437600  x25  0000000000000000  x26  0000007f6c63b818  x27  0000007f6d723510    x28  0000000012e72580  x29  0000007f6b5868d0  x30  0000007f8ba62f1c    sp   0000007f6b5868d0  pc   0000007f8ba62f28  pstate 0000000060000000    v0   a7e88583e680bfe69ca4e5b1b7e62f6b  v1   000000000000003a6b70612e91a2e986    v2   2f302f646574616c756d652f65676172  v3   70612f79654b72657473614d69666957    v4   00000000000000000000000000000000  v5   00000000000000000000000000000000    v6   00000000000000000000000000000000  v7   e680bfe69ca4e5b1b7e62f6b70612f79    v8   00000000000000000000007f6b5873a8  v9   00000000000000000000007f87093f18    v10  00000000000000000000007fdc2cfd60  v11  00000000000000000000007fdc2cff48    v12  0000000000000000000000556dc322b8  v13  00000000000000000000007fdc2d00e8    v14  00000000000000000000000000000004  v15  00000000000000000000000000000000    v16  40100401401004014010040140100401  v17  a00a000080081000aa008810aaaaa800    v18  80200802000000008000080000100000  v19  000000000000000000000000ebad8083    v20  12e993a012e9937012e9934012e8efd0  v21  000000000000000000000000ebad8085    v22  000000000000000000000000ebad8086  v23  000000000000000000000000ebad8087    v24  00000000000000000000000000000564  v25  00000000000000000000000000000000    v26  0000000000000000ffffffffffffffff  v27  000000000000000000000000ebad808b    v28  000000000000000000000000ebad808c  v29  000000000000000000000000ebad808d    v30  000000000000000000000000ebad808e  v31  000000000000000000000000ebad808f    fpsr 00000010  fpcr 00000000backtrace:    #00 pc 0000000000026f28  /system/lib64/libandroidfw.so (_ZN7android8ResTable11addInternalEPKvmS2_mib+192)    #01 pc 0000000000019424  /system/lib64/libandroidfw.so (_ZNK7android12AssetManager20appendPathToResTableERKNS0_10asset_pathEPm+592)    #02 pc 0000000000019a44  /system/lib64/libandroidfw.so (_ZNK7android12AssetManager11getResTableEb+216)    #03 pc 00000000000db988  /system/lib64/libandroid_runtime.so    #04 pc 000000000222049c  /system/framework/arm64/boot.oat (offset 0x2219000)

出错的调用栈是backtrace下面几行,第三列的长串数字对应的出错地址:

    #00 pc 0000000000026f28  /system/lib64/libandroidfw.so (_ZN7android8ResTable11addInternalEPKvmS2_mib+192)    #01 pc 0000000000019424  /system/lib64/libandroidfw.so (_ZNK7android12AssetManager20appendPathToResTableERKNS0_10asset_pathEPm+592)    #02 pc 0000000000019a44  /system/lib64/libandroidfw.so (_ZNK7android12AssetManager11getResTableEb+216)    #03 pc 00000000000db988  /system/lib64/libandroid_runtime.so    #04 pc 000000000222049c  /system/framework/arm64/boot.oat (offset 0x2219000)

然后进入Android源码out/target/product/phone_name/下面执行如下命令:

aarch64-linux-android-addr2line -fC -e symbols/system/lib64/libandroidfw.so 0000000000019a44aarch64-linux-android-addr2line -fC -e symbols/system/lib64/libandroidfw.so 0000000000019424aarch64-linux-android-addr2line -fC -e symbols/system/lib64/libandroidfw.so 0000000000026f28

即可看到对应源文件的出错位置,aarch64-linux-android-addr2line工具顾名思义就是addr to line(地址转换成代码行)三条命令的执行结果分别如下,调用顺序从上到下:

android::AssetManager::getResTable(bool) const/home/letv/jenkins_slave/workspace/X2-SHIPPING-DB-WNETCOM/Android/frameworks/base/libs/androidfw/AssetManager.cpp:738 (discriminator 1)android::AssetManager::appendPathToResTable(android::AssetManager::asset_path const&, unsigned long*) const/home/letv/jenkins_slave/workspace/X2-SHIPPING-DB-WNETCOM/Android/frameworks/base/libs/androidfw/AssetManager.cpp:689android::ResTable::addInternal(void const*, unsigned long, void const*, unsigned long, int, bool)/home/letv/jenkins_slave/workspace/X2-SHIPPING-DB-WNETCOM/Android/frameworks/base/libs/androidfw/ResourceTypes.cpp:3728
1 0
原创粉丝点击