ndk-stack -sym app/build/intermediates/cmake/debug/obj/x86/ -dump crash.log 还原出来的信息如下: ***Crash dump:***Build fingerprint:'google/sdk_gphone_x86/generic_x86:10/QSR1.210802.001/7603624:userdebug/dev-keys'#00 0x0000047b /data/app/com.teletian.sample.myndk-XGWmLhI8hu8vJdkaA7VHEQ...
:0Stack frame #16pc 000585dd /data/app/com.example.dctool-1/lib/arm/libunisdkdctool.so (unisdk::ntping::recv_packet()+32): Routine ?? ??:0Stack frame #17pc 000585dd /data/app/com.example.dctool-1/lib/arm/libunisdkdctool.so (unisdk::ntping::recv_packet()+32): Routine ??
具体来说,当拿到Logcat输出的堆栈日志,再结合addr2line和ndk-stack两款调试工具,就可以很够精确地定位到相应发生错误的代码行数,进而迅速找到问题。 首先,我们打开ndk目录下下的sdk/ndk/21.0.6113669/toolchains/目录,可以看到NDK交叉编译器工具链的目录结构如下所示。 然后,我们再看一下ndk的文件目录,如下所示。 ...
1. 先将崩溃信息保存为文件,再通过文件还原 adb logcat -c adb logcat > crash.log ndk-stack -sym app/build/intermediates/cmake/debug/obj/x86/ -dump crash.log 还原出来的信息如下:可以看到,还原的信息中出现了 native-lib.cpp:8:10,这样就可以知道是哪一行出错了。如果你是...
ndk-stack-symF:\hello-jni\obj\local\armeabi\-dump crash.log 用ndk-stack对本文中出现的日志分析,输入如下信息,和用addr2line工具得到的结果是一样的: 代码语言:javascript 复制 ***Crash dump:***Build fingerprint:'OPPO/A33m/A33:5.1.1/LMY47V/1390465867:user/release-keys'pid:14173,tid:14173,name...
adb logcat | ndk-stack -sym /Users/yangxin/Documents/devToos/java/android-ndk-r9d/samples/hello-jni/obj/local/armeabi-v7a 当程序发生crash时,会输出如下信息: pid: 22654, tid: 22654, name: xample.hellojni >>> com.example.hellojni <<< ...
stack: beb12340 012153f8 beb12344 00054290 beb12348 00000035 beb1234c beb123c0 [stack] …… 如果你看过logcat打印的NDK错误时的日志就会知道,我省略了后面很多的内容,很多人看到这么多密密麻麻的日志就已经头晕脑胀了,即使是很多资深的Android开发者,在面对NDK日志时也大都默默的选择了无视。
对于AndroidNative开发的人员而言,可能经常会在开发过程及线上环境中遇到Native Crash的问题,对于这类native crash,我们一般都会直接addr2line,或使用ndk中附带的ndk-stack脚本分析。 但是ndk-stack是不会对build id不匹配的库进行分析的。 对于上述问题,即使build id不同,我们也是可以尝试性地进行分析的,大致流程如下...
ndk-stack一般是位于ndk的工具下面,Mac下的地址为 /Users/XXXX/Library/Android/sdk/ndk/21.3.6528147/ndk-stack 然后在该目录下执行控制台命令,或者在 Android Studio的terminal中执行也可 adb shell logcat | androidsdk绝对路径/ndk-stack -sym so所在目录 ...
ndk-build:该shell脚本是AndroidNDK构建系统的起始点 ndk-gdb:该shell脚本允许使用GUN调试器调试原生组件 ndk-stack:该shell脚本可以帮助分析原生组件崩溃时的堆栈追踪 build:该目录包括了Android NDK构建系统的所有模块 platforms:该目录包含了支持不同Android目标版本的头尾件和库文件,NDK构建系统会根据具体的Android版本...