用户刚刚向我提交了错误报告,说我的应用程序崩溃了。用户还附加了一个throw调用栈。
似乎导致问题的部分是:
3 My App 0x000000010d005483 My App + 17539
有没有办法将该地址和/或+ 17539
翻译成代码中的行号?
请记住,我无法在我的机器上重现该错误,所以我不能只在调试模式下构建它。
答案 0 :(得分:3)
从Apple查看此Tech note。
...此跟踪类似于在调试器中停止执行时所看到的跟踪,除了没有给出方法或函数名称(称为符号)。相反,您有十六进制地址和可执行代码 - 您的应用程序或系统框架 - 它们引用它们。您需要将这些地址映射到符号。与Mac OS X的崩溃日志不同,iPhone OS日志在写出时不包含符号信息。您必须先对iPhone OS日志进行符号化,然后才能进行分析。
答案 1 :(得分:1)
我一直在使用GDB进行手动符号化。如果你做的很多,那就太麻烦了,但是典型的崩溃日志没有很多符号,我只需要偶尔表示一次崩溃日志。
程序如下:
cd
到该文件夹。$ gdb YourApp.app/Contents/MacOS/YourApp
set print asm-demangle on
set print symbol-filename on
p/a 0x000000010d005483
这些说明来自this page(显然不再在线)。
*请注意,.dSYM有一个UDID将它绑定到它创建的特定构建。所以,如果你没有原始的.dSYM文件,那你就麻烦了。从理论上讲,你甚至不能从源代码控制中提取相同的版本并重建,因为这个UDID会有所不同。