NSThread callStackSymbols记录<redacted>符号</redacted>

时间:2013-11-24 12:46:39

标签: ios debug-symbols

我正在尝试调试一些并发代码,当我记录[NSThread callStackSymbols]时;控制台将我感兴趣的大部分符号显示为&lt; redacted&gt;。

有没有办法在运行时解决这个问题?我删除了设备符号文件夹,但Xcode重新符号似乎没有解决问题。

这里还有一些其他问题,但他们似乎都试图在崩溃文件上解决这个问题。

如何在调试控制台中查看框架符号的方法名称?

我正在运行Xcode 5.

1 个答案:

答案 0 :(得分:11)

您只会显示所有符号:

  1. while debugging
  2. 生成完整崩溃报告并将其表示符号。
  3. 使用atos手动使用相应的dSYM或磁盘上的系统符号来手动表示地址(您需要为每个框架和二进制文件加载地址来执行此操作,同样由于Address space layout randomization。只有callStackSymbols没有揭示那些)。请参阅iOS crash reports: atos not working as expected
  4. <redacted>符号是

      

    内存优化。 <redacted>符号名称仅存储在磁盘上,这样可以在每个进程中节省一些物理内存和大量虚拟地址空间。

    请参阅https://devforums.apple.com/thread/171264

    总结一下:您可以 NOT 在运行时使用任何调用来显示所有系统符号。相反,您需要通过让应用程序崩溃并分析这些堆栈跟踪来创建完整的崩溃报告。