【问题标题】:ndk-stack not workingndk 堆栈不工作
【发布时间】:2012-01-03 08:19:54
【问题描述】:

我正在调用 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 脚本的 -dump 标志?
  • 错误提示我它无法读取二进制文件。也许您应该通过在参数列表中附加一个连字符 (-) 来告诉它从标准输入读取数据?
  • 看看my answer。开始使用 NDK 的简单方法

标签: android java-native-interface android-ndk


【解决方案1】:

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

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

要做的事情:

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

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

如果你很好奇,ndk-stack 的源代码在ndk/sources/host-tools/ndk-stack 下的android 源代码树中

【讨论】:

    猜你喜欢
    • 2013-10-02
    • 2021-05-16
    • 1970-01-01
    • 2021-01-09
    • 2013-02-16
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多