【发布时间】:2014-05-11 22:37:35
【问题描述】:
我需要调试一个多线程错误。因此,要获得产生崩溃的条件,我需要在代码中的特定点停止一个线程并等待另一个线程到达第二个断点。
我现在遇到的问题是,如果一个线程遇到断点,所有其他线程都会挂起。有没有办法只停止一个线程,让其他线程运行,直到遇到第二个断点?
【问题讨论】:
标签: ios objective-c xcode multithreading debugging
我需要调试一个多线程错误。因此,要获得产生崩溃的条件,我需要在代码中的特定点停止一个线程并等待另一个线程到达第二个断点。
我现在遇到的问题是,如果一个线程遇到断点,所有其他线程都会挂起。有没有办法只停止一个线程,让其他线程运行,直到遇到第二个断点?
【问题讨论】:
标签: ios objective-c xcode multithreading debugging
我知道两种方法: 如果遇到第一个断点,您应该会在 xcode 左侧看到调试导航器,其中包含当前正在运行的线程列表。您当前所在的线程应该被扩展。右键单击此线程并选择“挂起线程”。就是这样。
如果您稍后想继续,您只需点击恢复即可。 (为了查看线程,必须暂停执行,因此您要么必须处于断点才能执行此操作,要么自己暂停应用程序!)
其他更有趣的选择:
当你遇到第一个断点时,你可以进入控制台写
po [NSThread sleepForTimeInterval:3600]
这应该在该断点处暂停当前上下文中的线程一小时。
然后在 Xcode 中恢复执行。
【讨论】: