2015-04-02 97 views
4

我们使用Parse.com崩溃报告。将符号信息工作上载(日志文件中的成功消息)并将崩溃报告发送到Parse.com网站上很简单。Parse.com崩溃报告:堆栈跟踪未被符号化

然而,堆栈跟踪包含错位的名称和如果我们没有上传的符号信息对于我们自己的代码没有行信息,例如:

0 CoreFoundation __exceptionPreprocess @ 0x84 
1 libobjc.A.dylib objc_exception_throw @ 0x38 
2 CoreFoundation -[NSException raise] @ 0x8 
3 MyApp    _TToFC9MyApp23TestViewController13viewDidAppearfS0_FSbT_ @ 0x1f4 
4 UIKit    -[UIViewController _setViewAppearState:isAnimating:] @ 0x24c 

的符号信息的上传成功。否则,崩溃报告将包含警告:此堆栈跟踪是非解码的。要获得符号...但我们没有得到这个警告。

它可能与发布模式下的某些编译器设置有关(我们只上传发布版本的符号)?或者什么可能是非标记堆栈轨迹的原因?

+0

你有没有得到这个工作? – bmurmistro 2015-08-23 02:15:31

+0

不,仍然没有工作。 – Codo 2015-08-23 10:17:40

回答

3

我打算假设你在使用Swift? - 如果是这样,那么有一个很好的写了对迈克灰博客为什么以及如何发生这种情况:https://mikeash.com/pyblog/friday-qa-2014-08-15-swift-name-mangling.html

您也可以还原函数通过发射端和运行xcrun swift-demangle SYM的名字 - 但你需要做相同版本在编译应用程序时使用的swift编译器。

感谢, 丹

+0

这不完全是我想要实现的。我想将足够的符号信息上传到parse.com,以便我可以在那里看到详细的堆栈跟踪,没有错位的名称和包含行信息。 – Codo 2015-04-08 08:43:02

+1

不幸的是,目前这是不可能的。 – 2015-04-12 18:46:59

+0

这是Swift的限制,是Apple的工具还是Parse.com的限制? – Codo 2015-04-12 19:53:27

1

我的两分钱是你发送消息给解分配的对象,但没有完整的堆栈跟踪不能肯定。

+1

问题是:为什么堆栈跟踪没有符号化。我知道它为什么崩溃,因为我故意导致测试崩溃报告。 – Codo 2015-04-08 08:41:28

2

尝试设置地带调试符号在副本为“否”:

我不知道如果这些未来的设置可以帮助你或没有,但只是尽量设置为NO 2个的其他设置:“带链接的产品”和“部署后处理”

enter image description here

然后,如果仍然无法正常工作,测试在调试模式下您的应用程序。

+0

这是有道理的。目前发布版本的“是”。如果它能工作,我会让你知道的。谢谢。 – Codo 2015-04-11 06:40:37

+0

不幸的是,它只适用于Objective-C代码。我有线路信息。但对于Swift代码来说,没有任何改变:名称被破坏并且行信息丢失。 – Codo 2015-04-12 08:01:51

+0

你的回答并没有真正的帮助,但我给了你赏金,因为它比丹尼尔汤姆林逊的要好一些。 – Codo 2015-04-15 19:09:49

相关问题