android - ndk 堆栈不工作

标签 android java-native-interface android-ndk

我正在调用 ndk-stack,如下所示:

cat file_temp | ~/workspace/android-ndk-r6b/ndk-stack -sym /home/xyz/trunk/apk/obj/local/armeabi/

它找到了崩溃指纹,但未能向我显示堆栈分析。打印的错误是:

ndk-stack: elff/elf_file.cc:102: static ElfFile* ElfFile::Create(const char*): Assertion `read_bytes != -1 && read_bytes == sizeof(header)' failed. Stack frame #00  pc 43121300  Aborted

有什么想法吗?

谢谢。

最佳答案

这是 ndk-stack 程序无法读取共享库的未剥离版本。

发生特定崩溃是因为存在与模块名称匹配的文件,但它不够大,无法包含 ELF header 。

要做的事情:

  1. 检查通过 -sym 提供的目录中包含的文件是否正确(并且没有被截断)。

  2. 删除截断的文件或小于几百字节的文件。

如果您好奇,ndk-stack 的源代码位于 ndk/sources/host-tools/ndk-stack

下的 android 源代码树中

关于android - ndk 堆栈不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8218507/

相关文章:

android - Android.mk 中的预处理器宏被忽略,但在 Application.mk 中有效

android - 如何在 Android Studio 3.1.2 中添加原生 OpenCV?

android - 如何使用 ADB 判断屏幕是否打开

java - 如何使用http post将多个参数传递给restful webservice

java - 如何取消忽略 SWIG 中模板化类的特定方法?

java - fatal error : jni. h:没有这样的文件或目录 Netbeans IDE

c++ - ubuntu 12.04 中 android-ndk-r9d-linux-x86 的 ndk-gdb 出错

java - Firebase.setandroidcontext(getApplicationContext()) 在应用程序 oncreate() 中不起作用

android - Android 可以在折叠的通知中显示操作图标吗?

java - 我可以用 Java 创建自己的 native 方法吗?