一开始执行:
adb shell
cd /data/local/tmp
ulimit -c unlimited
./xxx
然后查看coredump文件信息:
adb pull /data/local/tmp/core ./
/Users/ahfu/code/android/android-ndk-r14b/prebuilt/darwin-x86_64/bin/gdb obj/local/arm64-v8a/test_xxx core
bt
#堆栈被完全损坏,什么有价值的信息都看不出来。
执行:
adb logcat | /Users/ahfu/code/android/android-ndk-r16b/ndk-stack -sym obj/local/arm64-v8a
# 一开始使用ndk 14r, 发现14r不支持64位二进制。换16r后解决。
然后启动 ./test_xxx 发生coredump后在另一个窗口看见了详细的coredump信息