生产调试:是否有比WinDbg更少侵入的方式?

时间:2010-03-13 13:08:05

标签: debugging clr windbg

我想知道在生产环境中分析正在运行的托管流程是否有一种不那么干扰的方法。

较少侵入性的含义:

  • 附加调试器时没有执行延迟。
  • 获取运行线程等基本统计信息时无执行延迟。

在Java世界中,JDK有一个这样的工具部分。我想知道.NET世界中是否有类似的工具。

该工具应回答以下问题:

  • 什么是线程池参数?与Windbg中的“!threadpool”相同。
  • 我当前正在运行的线程的调用堆栈是什么(是的,你从Java工具中得到:) :)。
  • 基本堆分析,例如ABC类型的多种对象。

有什么想法吗?

Alex

4 个答案:

答案 0 :(得分:2)

如果我理解正确,你不想实际调试程序,只获得一些基本信息。在这种情况下,Process Explorer可能就足够了。

答案 1 :(得分:1)

正如Oefe所说,您可以获得大量信息,包括Process Explorer中所有线程的堆栈。此外,.NET运行时有许多有用的performance counters,可能会给你一些见解。如果您有特殊需求,您的应用程序可以发布自己的计数器。

答案 2 :(得分:1)

以下是使用ETWanother one

以非侵入方式进行生产调试

答案 3 :(得分:0)

这取决于您要调试的内容。 WinDbg是Windows调试的巨大锤子,适用于从内核扩展调试任何东西。

如果您只想调试程序,大多数人只使用visual studio,它将附加到正在运行的进程。

然而,@ ofe可能会在这里有牛角。当大多数人说'调试器'时,他们想要回溯和断点等等。在Java中,您需要事先安排附加那种调试器。 Windbg或visual studio(-debugexe)比更多方便。