【问题标题】:How to see background threads in Visual Studio 2010 debugger如何在 Visual Studio 2010 调试器中查看后台线程
【发布时间】:2011-10-18 14:14:52
【问题描述】:

我试图弄清楚为什么在应用程序关闭并且窗口消失后,应用程序进程会在任务管理器中徘徊。

当我让 VS 附加到僵尸进程并中断所有进程时,线程窗口显示主线程仍然处于活动状态,并且还有许多工作线程。

一些问题:

  • 工作线程一定是后台线程吗?如果没有,我在窗口中没有看到这样的列,如何识别后台线程?

    我是否只需双击线程窗口中的每个线程,然后查看 Thread.IsBackgroundThread 值?

  • 当我单击主线程时,调试器不显示调用堆栈。如何 如何确定主线程卡在哪里?

【问题讨论】:

  • 使用 Debug + Break All 获取堆栈跟踪。在您的代码中搜索 DoEvents。

标签: c# multithreading visual-studio debugging


【解决方案1】:

我强烈建议你使用 WinDbg。它不是一个可视化调试器,尽管它更强大。 我一定会弄清楚你的。 要列出进程中的所有线程,请使用:~。
切换到某个线程~thread_ids。
查看当前线程 !clr_stack 的 stak。

简要教程。 http://www.codeproject.com/KB/debug/windbg_part1.aspx

也可以在 google 中尝试“使用 windbg 调试 Asp.net”

【讨论】:

  • 没有迹象表明他正在使用 ASP.Net
  • 同意。我只是说这是我在 WinDbg 上找到最有用信息的方式。
猜你喜欢
  • 2013-01-05
  • 1970-01-01
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-17
相关资源
最近更新 更多