问题标签 [mdbg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 无法使用 mdbg 从进程中分离
从这个问题开始,我现在有了可以使用 Mdbg API 附加到进程的代码。
问题是,如果需要,我无法脱离流程。当我调用 mgProcess.Detach().WaitOne(); (其中 mgProcess 是从 MDbgEngine 对象创建的 MDbgProcess )我收到以下错误消息:
如果我只是尝试调用mgProcess.Detach()或mgProcess.CorProcess.Detach()我会得到相同的结果。
有谁知道分离 Mdbg 进程的正确方法?
asp.net - 使用 Mdbg 的 ASP.NET 的基于 Web 的堆栈转储工具?
MySpace.com的首席系统架构师 Dan Farino做了一个精彩的演示,展示了一个基于 Web 的堆栈转储工具,该工具对给定进程中运行的所有线程进行分类(它们在做什么、它们执行了多长时间等) .)
highscalability.com上也总结了他们的技术:
- 性能收集器。
通过 UDP 集中收集性能数据。比 Windows 更可靠,允许任何客户端连接并查看统计信息。 - 基于 Web 的堆栈转储工具。
可以右键单击问题服务器并获取 .Net 托管线程的堆栈转储。过去必须 RDC 进入系统并附加调试器,然后 1/2 得到答案。缓慢、不可扩展且乏味。不仅仅是堆栈转储,还提供了有关线程正在做什么的大量上下文。故障排除更容易,因为您可以看到数据库上有 90 个线程被阻塞,因此数据库可能已关闭。 - Web 基础堆转储工具。
转储所有内存分配。对开发人员非常有用。节省手工操作的时间。• 探查器。从头到尾跟踪请求并生成报告。查看 URL、方法、状态,以及所有可以帮助您识别缓慢请求的内容。查看锁争用,是否有很多异常被抛出,任何可能有趣的东西。重量很轻。它在生产中的每个 VIP(100 台服务器组)的一个盒子上运行。每 10 秒采样 1 个线程。始终在后台跟踪。
问题是:为 ASP.NET 构建基于 Web 的堆栈转储工具需要哪些工具?为方便起见,我们假设目标 AppDomain 中托管的 *.aspx 能够输出该进程中的所有托管调用堆栈就足够了。
有几篇文章介绍了Mdbg(完全用 C#/IL 编写的托管代码的调试器,开始随 CLR 2 SDK 一起提供)和通常位于 C:\Program Files\Microsoft Visual Studio 8\SDK\ 中的mdbgcore程序集的使用。 v2.0\斌:
- http://dotnetdebug.net/2005/11/09/exceptiondbg-v01-debug-your-exceptions/
- http://blogs.msdn.com/jmstall/archive/tags/MDbg/default.aspx
- http://blogs.msdn.com/vijaysk/archive/2009/11/04/asp-net-debugger-extension-for-iis-7.aspx
解决方案是否会简单地引用此程序集来产生所需的输出?“列出所有托管调用堆栈”操作会对为生产流量提供服务的正在运行的进程产生什么影响?
c# - 如何使用 MDbg 以编程方式枚举正在运行的 .NET 进程中的类型?
我想打印出正在运行的 .NET 进程中加载的所有不同类型的列表。我的计划是最终基于此构建一个 GUI 应用程序,因此我想通过我的代码而不是第三方工具来实现这一点。我认为我最好的选择是使用 MDbgCore 附加到正在运行的进程,然后使用 MDbgProcess.AppDomains 获取 CorAppDomain 对象,并尝试将对象模型向下走。
但是,我无法终生停止其他进程并查看任何 AppDomain。我一直在使用如下代码(我基于Mike Stall 博客中的代码)
这打印:
我尝试了各种风格的 debugger.Options.Stop*。我考虑过迭代所有方法并在所有方法上设置断点,但我也无法迭代 Modules 列表。我试过 debugger.Options.Trace,但这与使用 TraceListeners 跟踪 MDbg 的执行有关,而不是跟踪目标应用程序。
我在发布模式下运行我的 noddy 调试器应用程序,在调试模式下运行目标。我正在使用 Visual C# 2010,但我束手无策。任何人都可以对此有所了解吗?
.net - 我在哪里可以获得 Mdbg?
我希望能够使用 Mdbg 调试 .net 代码。除了安装 Visual Studio(假设这是一种有效的获取方式)之外,还有其他获取方式吗?
.net - .NET 4.0 是否存在 mdbg 托管调试器示例?
是否有 .NET 4.0 版本的mdbg 托管调试器源?
我需要移植我的 CPU 分析器,而 ICorDebug 在 .NET 4.0 中发生了一些变化。
c# - mdbg 无法调试我的 hello world 程序
为了试用 mdbg,我有以下简单的 hello world 程序:
用 csc /debug kkk.cs 编译它,这会产生:
然后我做(从视觉工作室命令行):
或者
我有:
.net - 使用 mdbg 附加到 w3wp
我正在尝试使用命令行托管调试器(mdbg)附加到 w3wp 进程。我无法使用“a”命令在进程列表中看到该进程。
我确信问题在于 w3wp 进程正在 LocalSystem 帐户下的另一个会话中运行,并且找不到有关如何使用 mdbg 附加到这些类型的进程的任何文档。
可能吗?
.net - 关于 CorDbg 和 Mdbg 的好资源
我正在寻找一些关于 .NET 中 CorDbg 和 Mdbg 调试器的良好信息资源,以及一些关于 MSIL(CIL) 的资料。
debugging - 由于“代码已优化”异常,无法使用 Mdbg 进行 func-eval
我们正在使用 MdbgCore.dll 来评估线程调用堆栈上参数的属性。
为此,我们正在执行 func-eval。
不幸的是,我们执行 func-eval 的所有尝试都以 CORDBG_E_ILLEGAL_IN_OPTIMIZED_CODE 失败,这似乎是由于用于 func-eval 的线程不在 GC 安全点中。
这记录在这里:http: //blogs.msdn.com/b/jmstall/archive/2005/11/15/funceval-rules.aspx。
我们尝试扫描进程中的所有线程以找到处于 GC 安全点的线程,但它们似乎都将 UserState 标记为 USER_UNSAFE_POINT。
关于这个主题的文档非常稀少,我们正在努力弄清楚是否有办法在 GC 安全点中获取线程,以便我们可以进行 func-eval。我们会考虑任何允许我们使用线程确定性地闯入进程以执行 func-eval 的方法。
免责声明:我们正在尝试评估驻留在优化程序集中的类的方法,因此不确定这是否也可能导致问题。
示例代码如下:
}
Microsoft / Mdbg 团队,您能帮忙吗?
最好的,迈克
.net - .NET 的 MDBG(托管调试器)是否可以免费用于商业目的?
我正在做一个项目。为此,我需要使用调试器。obsly MDBG 是我的首选。但是当我下载样本并阅读 eula 时。它指出
您不得将该软件用于商业软件托管服务。
但这个 eula 是为
MICROSOFT CLR 托管调试器 (MDBG) 源示例
所以我的问题是我可以使用它还是不能?