在Visual Studio 2008中调试多线程C ++程序

时间:2013-07-18 10:46:18

标签: multithreading debugging visual-c++ visual-studio-2008

我正在调试Visual Studio 2008中的多线程程序。

  • 当我打破主线程时,进程中其他线程的状态是什么?
  • 他们继续执行还是打破了?
  • 当我在主线程中执行F10 / F11时会发生什么?
  • 如果我需要检查哪个线程更改了特定变量,我该如何处理?

1 个答案:

答案 0 :(得分:2)

如果调试器进入进程(例如通过Breakpoints或“Break All”),那么所有线程都会被挂起。

如果按F10或F11,则会将新的“临时”断点添加到下一行,并再次启动(恢复)该过程。因此,所有线程都会(在非常短的时间内)运行,直到断点被击中。

如果需要检测如何更改变量,可以设置“数据断点”。有关参考,请参阅What are data breakpoints? 另请查看文档:{​​{3}}

另请注意,您可以通过打开“Threads”-Window(Debug | Windows | Threads)来查看线程列表!