2

使用并行处理,无论是后台还是调试中的任务都会跳来跳去。我最终在每一行添加了一个断点。有没有办法只介入任务并在开始处放置一个断点?

4

1 回答 1

5

在调试器中暂停时,您可以使用“线程”窗口对上下文切换进行更多控制。您可以右键单击线程并选择冻结。这将防止调试器在您单步执行代码时切换到该线程。您还可以 Shift-选择多个线程并将它们全部冻结。如果您冻结除您正在单步执行的线程之外的所有线程,您可以不受其他处理阻碍地单步执行。

这有点尴尬,但您也可以使用它来调查某些类型的竞争条件,方法是明确地仅解冻一个线程,然后在您要测试的特定点强制活动线程更改(使用切换到线程)。这不会复制所有类型的线程同步问题(有些更微妙,处理不同 CPU 上的内存缓存等),但您可以看到交替执行顺序的影响(例如一些死锁场景。)

于 2012-10-31T14:56:29.877 回答