我正在调用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 。

要做的事情:

  • 检查-sym提供的目录中包含的文件是否正确(并且不被截断)。
  • 删除截断的文件或小于几百个字节的文件。

  • 如果您感到好奇,那么ndk-stack的源代码在androidt源代码树中的ndk/sources/host-tools/ndk-stack

    10-07 19:24
    查看更多