【问题标题】:android NDK HOWTO get stack trace without backtraceandroid NDK 如何在没有回溯的情况下获取堆栈跟踪
【发布时间】:2016-09-21 09:36:52
【问题描述】:

当我的 .so 库中的程序崩溃时,我想获取堆栈跟踪,事实上,我从 JNI 调用 .so 中的接口。

我关注了一个老问题,但没有奏效。 我在 dumpBacktrace 中得到的只是信号处理程序本身。 这里是the link of old question

平台:arm,ndk 版本:android-ndk-r10d

【问题讨论】:

  • 您到底想得到什么?术语“stacktrace”和“backtrace”经常互换使用。你想得到一个堆栈dump吗?还是调用栈中所有函数的trace
  • @Joachim Pileborg ,是的,我想跟踪调用堆栈中的所有函数。 ndk 中没有 backtrace()。
  • 在仔细阅读您的问题后,我还有几个问题。您是否使用信号处理程序(即您为SIGSEGV 安装处理程序)捕获崩溃(例如分段错误)?然后你不能依赖调用堆栈,因为信号处理程序是特殊情况,直接从内核调用。在这种情况下,我个人不知道如何获取调用跟踪,但我认为应该可以从内核中获取原始(非信号处理程序)堆栈。

标签: android c++ android-ndk arm


【解决方案1】:

你一定要看看咖啡:https://github.com/xroche/coffeecatch

【讨论】:

    猜你喜欢
    • 2015-06-15
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 2018-07-02
    • 2013-12-31
    • 1970-01-01
    相关资源
    最近更新 更多