NDK: android-addr2line 使用遇到的2个坑

461 阅读1分钟

  • 别用 stripped_native_libs 下的so,没有符号信息,这是一个 错误示范 💥💥💥💥💥

Screen Shot 2022-07-11 at 19.38.27.png

  • 找自己JNI调用下crash 的寄存器的地址; 1657540623964.jpg

别用 #00 pc 处的寄存器地址,那是libc.so 的;

  • addr2line的位置
    • /Users/dev/Documents/Android_Env/Sdk/ndk/21.0.6113669/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin
  • addr2line的用法
    • aarch64-linux-android-addr2line -C -f -e libcrash.so 0x27fc4
  • 得到的结果
    • /Users/dev/Documents/Android_work/As_work_28/breakpad4android/libbreakpad/src/main/cpp/crash.cpp:48

参考