调试多线程应用程序

Posted

技术标签:

【中文标题】调试多线程应用程序【英文标题】:Debugging a multi-threaded application 【发布时间】:2010-12-06 09:08:44 【问题描述】:

我继承了一个一开始就抛出 100 个线程的应用程序。这使我的调试生活变得非常棘手。有没有办法让 Visual Studio 跟随一个线程?

【问题讨论】:

你用的是什么版本的VS? VS 2008 / 2010 具有可以标记线程的功能 - msdn.microsoft.com/en-us/library/bb385628(v=VS.90).aspx - 有帮助吗? 【参考方案1】:

您是否尝试过在 Visual Studio 中使用“线程”窗口(在调试/Windows 菜单中)?

您可以冻结线程并在它们之间切换

【讨论】:

【参考方案2】:

如果可能,我建议您在调试模式下将创建的线程数限制为更易于管理的数量,例如 3。这样您仍然可以诊断由于线程之间的交互而导致的错误,但您是下没有完全下雪。

【讨论】:

【参考方案3】:

here 中的建议也刚刚解决了我的问题。

if you hit a breakpoint, disable it, and then begin stepping you should not stop on a different thread

【讨论】:

这就是我们不发布仅链接答案的原因。如果链接现在断开,请删除此答案。不要编辑它说链接已损坏。 如您所见,我已经在其中添加了实际的解决方案!

以上是关于调试多线程应用程序的主要内容,如果未能解决你的问题,请参考以下文章

gdb调试多线程程序总结

Visual Studio调试器指南---多线程应用程序调试

如何在 EclipseMe 中调试多线程 midlet 应用程序?

Eclipse调试多线程代码

C#使用线程窗口调试多线程程序

使用 vscode 调试多线程 C 程序时单步切换线程