我正在尝试使用symbolicatecrash,并获得有趣的结果。一位同事在另一台机器上构建了我们的发行版本,所以他给我发送了dSYM文件。运行在symbolicatecrash不喜欢我的dSYM文件
发现/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash
它填补了所有的苹果功能,但不是symbolicatecrash文件后矿。问题似乎是它不能(或不会)找到dSYM文件,可能是因为它有我同事的机器信息。当我从崩溃报告复制十六进制地址,我可以使用dwarfdump这样的:
dwarfdump --lookup 0x0001f892 --arch ARMv6的路径/到/ MyApp.app.dSYM
它给我的行号那个单一的电话正确。另外,symbolicatecrash能够从我们的代码中计算游戏的行数,但不能算Apple。我不知道他为什么看不到Apple的东西,但所有这些让我相信问题在于如前所述找到dSYM。
所以。有没有什么办法可以将dSYM的路径传递给symbolicatecrash命令,或者使其工作的一些其他方式?因为,严肃地说,制作一个为你的文件做某种魔术“搜索”的工具是完全愚蠢的,只是为了找不到它,因为它不想。
此外,任何想法为什么我的同事的构建不会显示任何苹果的功能? 虽然我在这里,但在崩溃文件中“+”是什么意思?就像这样:
0x00059f8c - [一个UIWindow的SendEvent:] + 108
很好的答案。我只想指出,Apple可能故意不在其二进制文件中包含这类信息(文件名和行号),原因是:他们不想泄露任何关于其源代码的额外信息。即使我们(开发人员)有这些信息,我们将如何处理它?这不像我们可以调试Apple的代码,所以知道文件名和行号是无用的。 – Roberto 2012-01-28 22:11:00