【发布时间】:2021-03-03 15:34:17
【问题描述】:
我的 32 位 .Net 程序有时会挂起整个 Windows 10 操作系统。我无法访问计算机上的任务管理器或控制台来转储我的 .Net 以在 windbg 中进行分析。我们尝试了 RDP、RDP 到控制台、远程命令行 - 但没有运气访问计算机 - 我们只需要重新启动。
有没有办法在操作系统挂起时获取 Windows 10 诊断转储,然后将其作为 WinDBG 中的 .Net 应用程序进行分析?注意:我的应用是 32 位的,为 64 位应用创建的转储不适用于我在 WinDbg 中的应用。
谢谢
【问题讨论】:
-
考虑使用procdump,它可以配置为在各种条件下进行转储,包括定期转储,如果没有更具体的可以确定的话。如果单个用户进程设法使整个机器无响应,这通常是由于它分配了太多内存导致发生抖动和/或 100% CPU,因此内存/CPU 条件应该足够了。您还可以通过使用作业来限制进程内存,但似乎没有很好的命令行工具。
-
“挂起整个 windows 10 操作系统”表示您可以将机器配置为捕获内核转储。
-
您可以配置键盘以导致蓝屏,通过按某个热键来调试内核转储。见docs.microsoft.com/en-us/windows-hardware/drivers/debugger/…