Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 为什么GDB会说;没有可用的行号信息”;当使用dSYM文件表示崩溃转储时?_Objective C_Cocoa_Gdb_Crash Dumps_Debug Symbols - Fatal编程技术网

Objective c 为什么GDB会说;没有可用的行号信息”;当使用dSYM文件表示崩溃转储时?

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

我构建了一个MacOSX应用程序,该应用程序被配置为删除发布的调试信息并创建dSYM文件

(项目配置如下所述:http:/developer.apple.com/tools/xcode/symbolizingcrashdumps.html的缓存版本,该版本已存在)

正如预期的那样,为我的应用生成的崩溃报告没有显示我的应用内部调用堆栈跟踪的行信息

在分析崩溃报告时,我无法获得GDBatos来为堆栈跟踪提供行信息

事故报告摘录:

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)
  • GDB提示加载的符号(甚至尝试使用
    文件加载dSYM
  • 调用的
    信息行*0x00000001015e9c61
  • GDB用地址0x1015e9c61的
    无行号信息进行响应
  • 我通过执行以下操作尝试了atos:

  • 名为
    atos-arch x86\u 64-o AppName.app
    (还尝试直接将二进制文件和dSYM的DWARF文件连接起来)
  • 键入
    0x00000001015e9c61
    并按enter键
  • atos只需重复
    0x00000001015e9c61
  • 有什么不对劲吗


    符号似乎加载正确(至少gdb报告了这一点),我确信崩溃、dSYM和应用程序包都匹配。

    我还没有弄清楚如何使手动符号化工作,但我找到了一个很好的脚本,可以自动完成

    该脚本可在以下位置找到:


    我将通读脚本的代码,找出它在做什么,并回答我自己的问题。

    这非常有用,我仍然不知道我做错了什么,但我只是无法将日志发送到symbolicate,但该脚本运行良好。现在开始解决我的错误,现在我已经找到了。。。