查找Xcode调试消息的来源

时间:2016-12-22 11:01:43

标签: xcode

我正与许多第三方供应商合作,他们为我提供了全面的.lib文件。正在运行的已处理的一个正在向控制台记录消息,这有点令人担忧,需要与供应商一起提出 问题是,我不确定消息来自何处,并且由于项目的复杂性,几乎不可能看到消息的来源。通过这种方式,我的意思是,一些库彼此交互,项目不会在没有其他库的情况下运行。如果我要评论某些类的初始化,它可能是一个红鲱鱼,因为它可能从另一个库调用一个函数。
我的问题是,Xcode断点(或者我可以使用的其他工具)中是否有一个功能可以显示某个控制台日志(无论是NSLog还是std :: cout等)的来源?

非常感谢,提前 路加

1 个答案:

答案 0 :(得分:2)

是的,使用符号断点来打破NSLogstd::cout。如果您正在处理C ++代码或Swift,您甚至可以打破特定的错误或异常。要为项目添加符号断点,您必须执行以下操作:

  • 点击看起来的图标,转到断点导航器 就像导航区域上的一个胖箭头一样(在Xcode 8中,第二个图标 从面板右边开始计算到编辑器的左边)
  • 点击窗口左下角的 +按钮
  • 选择弹出菜单符号断点
  • 添加您要打破的符号(示例:在C ++中,std::cout;在目标C中:-[NSObject(NSObject) doesNotRecognizeSelector:];在C或Swift中,CGErrorBreakpoint() - 重要说明< / strong> - 避免插入任何空格;不幸的是,这里的格式化 - 将[符号]放在不同的行中但是 - 和[在ObjC符号
  • 之间必须没有空格
  • 如果你知道什么是给你悲伤的库填写模块字段
  • 点击操作按钮,然后在出现的弹出菜单中选择调试器命令
  • 在下面的文本字段中,填写 bt ,以便在每次点击此符号时获得回溯
  • 如果您不希望在点击第一个断点后停止执行,请选中评估操作后自动继续复选框

如果您的库正在抛出C ++异常,您也可以打破这个。只需在单击+按钮时选择该选项即可。要了解更多如何在Xcode中设置断点,请转到:

http://help.apple.com/xcode/

导航至:调试您的应用&gt; 设置断点&gt; 在事件发生时暂停执行