<p>KSCrash 捕获崩溃,但崩溃堆栈为空</p>

创建于 2017-07-27  ·  17评论  ·  资料来源: kstenerud/KSCrash

我从我们的用户那里得到了一些崩溃报告,但我发现一些崩溃堆栈是空的。
2017-07-27 3 00 07

这些是一些原始的 json 崩溃报告。
1.txt
2.txt
3.txt

最有用的评论

下周我会看看这个问题

所有17条评论

我得到同样的问题。

我遇到同样的问题。 有人修吗?

我遇到了同样的问题,但是为什么呢?

如何重现问题?

KSCrash在没有调试符号的情况下解析符号表时在函数kssymbolicator_symbolicate()中将光标imageAddress设置为0(Xcode --> build settings --> Strip Style -->Debugging Symbols)
祝你好运 ...

我遇到同样的问题。 有人修吗?

作者提供的所有三个报告问题都与 C++ 异常有关。 有没有人在没有回溯的情况下收到非 C++ 崩溃?

@bamx23 #205 说明了为什么 C++ 崩溃无法获取崩溃的堆栈。 我有一个问题,到现在为止,问题已经解决了吗? 当嵌入式框架中的 C++ 异常时,我仍然可以获得一个空堆栈吗?

下周我会看看这个问题

@ bamx23我得到很多空的崩溃堆栈,“诊断”:“尝试取消引用空指针。”
空.txt

如果遇到 C++ 异常的空栈,可以在这个问题上找到原因。 https://github.com/kstenerud/KSCrash/issues/205

抱歉,最好说“下个月”。
我已经从我的示例应用程序中检查了关于 C++ 崩溃的 KSCrash,但线程没问题。 有人可以提供重现问题的示例代码吗?

@chzhij5 老哥,你们用的是哪个版本的ks?1.15.8?

你好! 我们在团队中调查了问题和可能的解决方案。 有一个:

在 KSCrashMonitor_CPPException 的安装过程中,我们可以使用https://github.com/facebook/fishhook 中描述和实现的“hack”。 它允许挂钩任何动态链接二进制函数的调用。 所以我们为所有加载的二进制文件挂钩__cxa_throw

如果任何库有一个弱符号__cxa_throw (就像 KSCrash 目前有的),我们将按照我们现在的方式调用它。 订单就像[fishhooked one] -> [weak one] -> [libc++abi one]

唯一无法解决的问题是,如果某些二进制文件中包含强__cxa_throw符号,我们就无法挂钩它。 但我认为没有办法处理这种情况。

@kstenerud ,你怎么看? 我们已经在 stackoverflow 阅读了您的帖子,看来上面的想法至少可以部分解决它。

我们可以继续创建一个拉取请求,其中鱼钩将依赖于 KSCrash(或 KSCrash 子规范,例如“KSCrash/Recording/ImprovedCPPExceptionsHandling”)。

[fishhooked one] -> [weak one] -> [libc++abi one]

如果[weak one]不调用它,我们实际上可以从[fishhooked one]调用[libc++abi one] ,这满足@kstenerud的要求。

听起来不错,我们将在下周在我们的内部应用程序中进行尝试。

这里是公关:#375

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

1t2t3t4t picture 1t2t3t4t  ·  3评论

kstenerud picture kstenerud  ·  4评论

ferrous777 picture ferrous777  ·  30评论

happy201993 picture happy201993  ·  10评论

pdrtrifork picture pdrtrifork  ·  12评论