符号断点很棒,但是在xcode中手动添加是很麻烦的。好吧,在你添加一个之后,你可以启用/禁用它们,但是能够在代码中执行它会很好......就像这样:
#if DEBUG
SetBreakPointForFunction([Myclass myfunction], BreakPointActionPlaySound);
#endif
这可能吗?
答案 0 :(得分:0)
不完全是代码,但是你可以在调试构建阶段使用shell脚本创建断点(或者让shell使用python,ruby,等等......来完成工作。)
如果你偷看.xcodeproj文件夹,你会看到它有如下路径: [项目] .xcodeproj / xcuserdata / [用户名] .xcuserdatad / xcdebugger / Breakpoints_v2.xcbkptlist [项目] .xcodeproj / xcshareddata / xcdebugger / Breakpoints_v2.xcbkptlist
(免责声明,此示例引用xcode 5.1.1)
文件内容相当简单:
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
type = "4"
version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.SymbolicBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "-[ActivitySpanner thresholdTimePassed]"
moduleName = "">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>
因此,通过将BreakpointProxy的实例填充到其中一个文件中,您可以应用最喜欢的断点库。重复可能很痛苦,无论是推送还是弹出文件,还是先检查实例。
在最坏的情况下,如果xcode被脚本更改后不能强制重新读取xcbkptlist文件,那么您可以使用一个脚本来操作断点文件,然后打开项目。 (也许是矫枉过正,我们现在已经进入了像Jenkins这样的持续集成工具领域:)