查找Xcode调试消息的来源
我与许多第三方供应商合作,他们为我提供了全面的.lib文件。其中一个正在运行的进程正在将一条消息记录到控制台,该消息有点令人担忧,需要向供应商提出。查找Xcode调试消息的来源,xcode,Xcode,我与许多第三方供应商合作,他们为我提供了全面的.lib文件。其中一个正在运行的进程正在将一条消息记录到控制台,该消息有点令人担忧,需要向供应商提出。 问题是,我不确定消息来自哪里,而且由于项目的复杂性,几乎不可能看到消息来自哪里。我的意思是,有些库彼此交互,没有其他库,项目就无法运行。如果我要注释掉某些类的初始化,这可能是一个麻烦,因为它可能是从另一个库调用函数。 我的问题是,Xcode断点(或者我可以使用的另一个工具)中是否有一个特性可以显示某个控制台日志(无论是NSLog还是std::cou
问题是,我不确定消息来自哪里,而且由于项目的复杂性,几乎不可能看到消息来自哪里。我的意思是,有些库彼此交互,没有其他库,项目就无法运行。如果我要注释掉某些类的初始化,这可能是一个麻烦,因为它可能是从另一个库调用函数。
我的问题是,Xcode断点(或者我可以使用的另一个工具)中是否有一个特性可以显示某个控制台日志(无论是NSLog还是std::cout等)的来源 事先非常感谢。
Luke是的,使用符号断点在
NSLog
或std::cout
上中断。如果您正在处理C++代码或SWIFT,则甚至可以在特定错误或异常上进行破解。要向项目中添加符号断点,必须执行以下操作:
- 单击显示的图标,转到断点导航器 就像导航区域上的右箭头(在Xcode 8中,第二个图标 从面板右侧到编辑器左侧计数)
- 单击窗口左下角的+按钮
- 在弹出菜单上选择符号断点
- 添加您想要中断的符号(例子:C++中,代码:STD::CUT/<代码);在目标C:[ NStObject(NSObject)不知道选择器:] />代码;在C或SWIFT中,<代码> CGRORORACKPOUNT()> <代码> >强注释>强> -避免插入任何空白;不幸的是,这里的格式放在[符号]中。在不同的行中,但ObjC符号中的-和[之间不得有空格
- 如果您知道提供给您的库是什么,请填写模块字段
- 单击操作按钮,并在弹出菜单中选择调试器命令
- 在下面的文本字段中,填写
,以便在每次点击此类符号时获得回溯bt
- 如果不希望在命中第一个断点后停止执行,请选中评估操作后自动继续复选框
然后导航到:调试你的应用程序设置断点在事件发生时暂停执行非常棒。这让我走上了正确的轨道。我能够做到这一点,并将条件设置为
[(NSString*)$r0 containsString:@“Generating”]
,这使我能够锁定记录此消息的位置,然后通过有问题的库获取堆栈跟踪。呼喊此()回答以帮助了解条件的语法。很高兴我能提供帮助:)