我正在使用一些GCD代码调度一堆类似的异步块.我想通过逐步调试其中一个块,所以我在块顶部附近设置了一个断点,但是每次提交一个新块时调试器都会遇到断点,所以我从来没有设法单步执行阻止,我只是在同一行上的不同线程交换.
我的问题是如何设置一个断点,使其以某个线程为条件?即它只应在线程4上执行时触发?
编辑
我应该补充一点,我的块代码是非常耗时的,因此调度程序在块内的下一行可以执行之前交换到另一个线程,而另一个新安排的GCD块轮到它,触发相同的断点.
我不认为这是通过Xcode Breakpoints UI公开的,但是在lldb中你可以修改一个断点,这样只有在(1)线程名称匹配时才会触发,(2)调度队列名称匹配,(3)线程ID匹配,或者(4)线程索引号匹配.您可以在创建断点(breakpoint set
)时指定这些条件,也可以将这些条件添加到现有断点中breakpoint modify
.见help breakpoint modify
在调试器控制台窗口允许的参数列表.
归档时间: |
|
查看次数: |
2302 次 |
最近记录: |