0

是否可以将 Windbg 附加到在 Internet Explorer(或任何其他浏览器)下运行的基于 Silverlight 的应用程序?如果可能的话,我是否必须将windbg附加到浏览器,这将使我进入Internet Explorer下的那个迷你CLR?

4

1 回答 1

2

我不是 Silverlight 方面的专家,但您可以在浏览器中将 WinDbg 与 Silverlight 应用程序一起使用,但有一些限制。此外,由于您停止插件,某些浏览器(例如 Chrome)会不断抱怨插件没有响应。

您需要做的第一件事是确保加载正确版本的 SOS。Silverlight 有自己的版本,这是您必须使用的版本。要加载正确的版本,请使用 CLR 模块来识别 SOS 的关联版本。命令是

.loadby sos coreclr

coreclr请注意,在 Silverlight中调用了 CLR 模块。

使用该.chain命令验证您是否加载了正确版本的 SOS。如果您已经加载了 SOS 版本,请确保首先清除您的 WinDbg 工作区。

之后,您可以访问常规的 SOS 命令。我使用一些命令(例如!clrstackand )的成功有限!dso,但其他命令(例如!threadsand )!dumpheap按预期工作。

如果您只是附加,!clrstackand!dso命令不会按预期工作。但是,如果您使用它们设置断点,!bpmd它们将在断点的上下文中工作。这可能是由于代码是如何在 Silverlight 应用程序中运行的,但正如我所说,我不是 Silverlight 方面的专家。

这适用于 Silverlight 4。

Tess 有一篇关于在浏览器中调试 Silverlight 2 应用程序的帖子。

这篇长文也值得一看。

于 2010-10-07T05:09:33.267 回答