Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
查找Xcode调试消息的来源_Xcode - Fatal编程技术网

查找Xcode调试消息的来源

查找Xcode调试消息的来源,xcode,Xcode,我与许多第三方供应商合作,他们为我提供了全面的.lib文件。其中一个正在运行的进程正在将一条消息记录到控制台,该消息有点令人担忧,需要向供应商提出。 问题是,我不确定消息来自哪里,而且由于项目的复杂性,几乎不可能看到消息来自哪里。我的意思是,有些库彼此交互,没有其他库,项目就无法运行。如果我要注释掉某些类的初始化,这可能是一个麻烦,因为它可能是从另一个库调用函数。 我的问题是,Xcode断点(或者我可以使用的另一个工具)中是否有一个特性可以显示某个控制台日志(无论是NSLog还是std::cou

我与许多第三方供应商合作,他们为我提供了全面的.lib文件。其中一个正在运行的进程正在将一条消息记录到控制台,该消息有点令人担忧,需要向供应商提出。
问题是,我不确定消息来自哪里,而且由于项目的复杂性,几乎不可能看到消息来自哪里。我的意思是,有些库彼此交互,没有其他库,项目就无法运行。如果我要注释掉某些类的初始化,这可能是一个麻烦,因为它可能是从另一个库调用函数。
我的问题是,Xcode断点(或者我可以使用的另一个工具)中是否有一个特性可以显示某个控制台日志(无论是NSLog还是std::cout等)的来源

事先非常感谢。

Luke

是的,使用符号断点在
NSLog
std::cout
上中断。如果您正在处理C++代码或SWIFT,则甚至可以在特定错误或异常上进行破解。要向项目中添加符号断点,必须执行以下操作:

  • 单击显示的图标,转到断点导航器 就像导航区域上的右箭头(在Xcode 8中,第二个图标 从面板右侧到编辑器左侧计数)
  • 单击窗口左下角的+按钮
  • 在弹出菜单上选择符号断点
  • 添加您想要中断的符号(例子:C++中,代码:STD::CUT/<代码);在目标C:[ NStObject(NSObject)不知道选择器:] />代码;在C或SWIFT中,<代码> CGRORORACKPOUNT()> <代码> >强注释>强> -避免插入任何空白;不幸的是,这里的格式放在[符号]中。在不同的行中,但ObjC符号中的-和[之间不得有空格
  • 如果您知道提供给您的库是什么,请填写模块字段
  • 单击操作按钮,并在弹出菜单中选择调试器命令
  • 在下面的文本字段中,填写
    bt
    ,以便在每次点击此类符号时获得回溯
  • 如果不希望在命中第一个断点后停止执行,请选中评估操作后自动继续复选框
如果您的库正在抛出C++异常,您也可以中断此操作。单击“+”按钮时,只需选择该选项。


然后导航到:调试你的应用程序设置断点在事件发生时暂停执行

非常棒。这让我走上了正确的轨道。我能够做到这一点,并将条件设置为
[(NSString*)$r0 containsString:@“Generating”]
,这使我能够锁定记录此消息的位置,然后通过有问题的库获取堆栈跟踪。呼喊此()回答以帮助了解条件的语法。很高兴我能提供帮助:)