自动化 VisualStudio 即时窗口

发布于 2024-09-01 14:31:25 字数 388 浏览 6 评论 0原文

我正在尝试自动化打开托管应用程序的故障转储和检索堆栈跟踪的过程。 Windgb 有时可以工作,但让它加载正确版本的 sos.dll 是一场噩梦,除非处理转储的计算机实际上与发生转储的计算机相同。

另一方面,Visual Studio 可以简单地完成这项工作。我打开转储,转到立即窗口,然后输入

.load \\<machine where dump occured>\c\windows\microsoft.net\framework\v2.0.50727\sos.dll

!clrtsack 

“一切正常”。

我可以在 Visual Studio 中编写此过程的脚本吗?如果没有,Visual Studio使用的后端调试器是否与windbg相同?

I'm trying to automate the process of opening crash dumps for managed applications and retrieving the stack trace. Windgb works sometimes, but getting it to load the correct version of sos.dll is a nightmare unless the machine processing the dump is practically identical to the machine where the dump occured.

Visual Studio, on the other hand, does the job simply. I open the dump, go to the immediate window, and type

.load \\<machine where dump occured>\c\windows\microsoft.net\framework\v2.0.50727\sos.dll

!clrtsack 

And eveything works just fine.

Can I script this process in visual studio? If not, is there a back end debugger used by visual studio that is the same as windbg?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

权谋诡计 2024-09-08 14:31:25

您可以使用 .loadby 命令来代替将完整路径传递给 .load 命令,以向 WinDbg 提供有关 DLL 应位于何处的提示。
该命令接收两个参数:

  1. 您想要加载的 DLL 的名称(在您的例子中为 SOS
  2. 已加载的 DLL 的名称,应包含在与第一个相同的文件夹中,请求的 DLL(在您的情况下,对于 .Net v4.0 为 clr,对于早期版本为 mscorwks)。

例如:

// v4.0
>.loadby sos clr

// earlier versions
>.loadby sos mscorwks

Instead of passing the complete path to the .load command, you could use the .loadby command instead, to give WinDbg a hint about where the DLL should be located.
The command receives two arguments:

  1. The name of the DLL you want to load (in your case, SOS)
  2. The name of an already-loaded DLL, that should be contained in the same folder as the first, requested DLL (in your case, clr for .Net v4.0, or mscorwks for earlier versions).

For example:

// v4.0
>.loadby sos clr

// earlier versions
>.loadby sos mscorwks
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文