我继承了一个在开始时抛出100个线程的应用程序。这使我的调试生活非常棘手。有没有办法让Visual Studio跟随一个线程?
答案 0 :(得分:17)
您是否尝试过使用Visual Studio中的“Threads”窗口(在Debug / Windows菜单中)?
您可以冻结线程并在它们之间切换
答案 1 :(得分:1)
如果可能,我建议在调试模式下将创建的线程数量限制为更易管理的数量,例如3.这样你仍然可以诊断由于线程之间的交互而产生的错误,但你是没完全下雪。
答案 2 :(得分:1)
here中的建议也解决了我的问题。
if you hit a breakpoint, disable it, and then begin stepping you should not stop on a different thread
答案 3 :(得分:0)
调试多线程程序非常困难。一旦调试器执行任何操作,程序的行为就会完全改变。还"跟随"只有一个线程无法找到所有问题。您必须让所有线程运行而不会中断以分析问题。
所以你必须在不使用VS的情况下进行调试。如何在实时应用程序中完成此操作,请查看我的文章CodeProject: Debugging multithreaded code in real time。很抱歉只提供一个链接,但在这里复制所有内容只会太长。