Objective c 为什么GDB会说;没有可用的行号信息”;当使用dSYM文件表示崩溃转储时?
我构建了一个MacOSX应用程序,该应用程序被配置为删除发布的调试信息并创建dSYM文件 (项目配置如下所述:http:/developer.apple.com/tools/xcode/symbolizingcrashdumps.html的缓存版本,该版本已存在) 正如预期的那样,为我的应用生成的崩溃报告没有显示我的应用内部调用堆栈跟踪的行信息 在分析崩溃报告时,我无法获得GDB或atos来为堆栈跟踪提供行信息 事故报告摘录:Objective c 为什么GDB会说;没有可用的行号信息”;当使用dSYM文件表示崩溃转储时?,objective-c,cocoa,gdb,crash-dumps,debug-symbols,Objective C,Cocoa,Gdb,Crash Dumps,Debug Symbols,我构建了一个MacOSX应用程序,该应用程序被配置为删除发布的调试信息并创建dSYM文件 (项目配置如下所述:http:/developer.apple.com/tools/xcode/symbolizingcrashdumps.html的缓存版本,该版本已存在) 正如预期的那样,为我的应用生成的崩溃报告没有显示我的应用内部调用堆栈跟踪的行信息 在分析崩溃报告时,我无法获得GDB或atos来为堆栈跟踪提供行信息 事故报告摘录: 0 CoreFoundation 0x0000
0 CoreFoundation 0x00007fff920f7286 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff91f74d5e objc_exception_throw + 43
2 CoreFoundation 0x00007fff920f70ba +[NSException raise:format:arguments:] + 106
3 CoreFoundation 0x00007fff920f7044 +[NSException raise:format:] + 116
4 CoreFoundation 0x00007fff920b429b -[__NSCFDictionary setObject:forKey:] + 219
5 AppName 0x00000001015e9c61 AppName + 85089
我通过以下操作尝试了GDB:
gdb-arch x86_64
文件
命令加载应用程序(尝试了AppName.app和Content/MacOS/AppName)文件加载dSYM
)信息行*0x00000001015e9c61
无行号信息进行响应
atos-arch x86\u 64-o AppName.app
(还尝试直接将二进制文件和dSYM的DWARF文件连接起来)0x00000001015e9c61
并按enter键0x00000001015e9c61
符号似乎加载正确(至少gdb报告了这一点),我确信崩溃、dSYM和应用程序包都匹配。我还没有弄清楚如何使手动符号化工作,但我找到了一个很好的脚本,可以自动完成 该脚本可在以下位置找到:
我将通读脚本的代码,找出它在做什么,并回答我自己的问题。这非常有用,我仍然不知道我做错了什么,但我只是无法将日志发送到symbolicate,但该脚本运行良好。现在开始解决我的错误,现在我已经找到了。。。