首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >symbolicatecrash不喜欢我的dSYM文件

symbolicatecrash不喜欢我的dSYM文件
EN

Stack Overflow用户
提问于 2010-02-24 08:37:46
回答 1查看 3.5K关注 0票数 3

我正在尝试使用符号碰撞,并得到了有趣的结果。一位同事在另一台机器上构建了我们的发行版,所以他给我发送了dSYM文件。运行位于以下位置的symbolicatecrash文件后

/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash

它填充了苹果的所有功能,但不是我的。问题似乎是它不能(或不会)定位dSYM文件,可能是因为它包含我同事的机器信息。当我从崩溃报告中复制十六进制地址时,我可以像这样使用dwarfdump:

dwarfdump --lookup 0x0001f892 --arch armv6 path/to/MyApp.app.dSYM

它正确地给出了那个呼叫的行号。此外,symbolicatecrash能够从我们的代码中找出游戏的行号,但苹果的却不行。我不知道他为什么看不到苹果的东西,但所有这些让我相信,问题出在寻找dSYM上,就像前面提到的那样。

所以。有没有什么方法可以直接把dSYM的路径传递给symbolicatecrash命令,或者其他一些让它工作的方法?因为,说真的,编写一个工具对您的文件执行某种魔术“搜索”,结果却找不到它,因为它不想这样做,这是完全愚蠢的。

另外,你知道为什么我的同事的版本没有显示任何苹果的功能吗?当我在这里的时候,崩溃文件中的"+“是什么意思?如下所示:

0x00059f8c -UIWindow sendEvent:+ 108

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-03 15:09:21

符号碰撞是一个巨大的技巧,你能做的最多的就是学会完全按照它对你的期望去做事情。或者读取它的内部结构并修复它,但随后您将不得不为下一次SDK更新重新修复它……

在这种情况下,我认为您的问题是您没有将dSYM文件放在与应用程序包相同的文件夹中。它必须完全像XCode离开它一样,并且它应该在聚光灯能找到它的位置。此外,请确保名称与预期完全一致-- "dSYM“的大小写非常重要,我听说由于错误,应用程序名称中不支持圆点。

如果有疑问,请始终尝试使用-v选项,以获得更详细的错误消息。

Apple二进制文件没有行号信息,就我个人而言,我非常高兴至少得到了函数名。可能会更糟。

在"-UIWindow sendEvent:+ 108“中,表示从函数开始算起的108个字节。对这个数据的唯一有用的解释是,如果数字很小,它可能是准确的,如果数字很大,你的符号就不正常了。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2322880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档