代码之家  ›  专栏  ›  技术社区  ›  Alex

生产调试:有没有比windbg侵入性小的方法?

  •  3
  • Alex  · 技术社区  · 15 年前

    我想知道是否有一种更不侵入的方法来分析生产环境中运行的、管理的流程。

    不太具侵入性的含义:

    • 附加调试器时不延迟执行。
    • 在获取诸如运行线程之类的基本统计信息时,不会延迟执行。

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

    该工具应回答以下问题:

    • 线程池参数是什么?与“!windbg中的threadpool。
    • 什么是我当前运行的线程的调用库(YEP,你从Java工具中得到它):
    • 基本堆分析,例如ABC类型的对象有多少。

    有什么想法吗?

    亚历克斯

    4 回复  |  直到 14 年前
        1
  •  2
  •   oefe    15 年前

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

        2
  •  1
  •   Brian Rasmussen    15 年前

    正如oefe所说,您可以从ProcessExplorer获得很多信息,包括所有线程的堆栈。此外,.NET运行时还有许多有用的 performance counters 这可能会给你一些启发。如果您有特殊需要,应用程序可以发布自己的计数器。

        3
  •  1
  •   Naveen    14 年前

    以下是非侵入式生产调试,使用 ETW another one

        4
  •  0
  •   bmargulies    15 年前

    这取决于您想要调试什么。windbg是Windows调试的重锤,适用于从内核扩展开始的任何调试。

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

    然而,@oefe可能在这里有牛角。当大多数人说“调试器”时,他们需要回溯和断点等。在爪哇,您需要事先作出安排以附加调试器。windbg或Visual Studio(-debugexe)是 更多 比那更方便。