有没有办法调试在发布模式下编译的已经运行的应用程序?

时间:2008-12-17 21:42:25

标签: .net windows-services debugging release-mode

我有一个dotnet windows服务,当前挂起但正在运行。无论如何都有一个调试器,尽管没有符号;它已经在运行了吗?

3 个答案:

答案 0 :(得分:5)

忽略“无符号”警告。一旦你连接了一个本机调试器(我更喜欢WinDbg这样的东西),然后加载SoS工具包:

.loadby sos mscorwks

现在,您可以使用!clrstack命令获取托管调用栈,并希望能够为您提供足够的信息来确定挂起。如果不适合你的话,这里有a handy cheat-sheet和其他几个。

这次不会帮助你,但是......养成为调试发布模式构建启用符号文件生成的习惯。没有理由不这样做,它会让你的生活在这样的情况下变得更容易。

答案 1 :(得分:2)

来自MS dev IDE 调试 - >流程 - >附加(选择进程后)。您可能必须单击“显示系统进程”框。可能没有有用的信息......

答案 2 :(得分:2)

以下是how to debug a hung .NET process上的示例代码,工具链接和演示文稿。

您可能还想观看this video presentation,其中包含相同的工具和示例。尽管网页上有瑞典文字,但视频仍为英文。