1

我想在 PyKd 中执行以下操作:执行另一个扩展的命令并处理其输出。

首先,似乎我必须在 PyKd 中加载 SOS,而不是在 WinDbg 中。我做了这个

>>> print(loadExt("C:\Windows\Microsoft.NET\Framework64\v2.0.50727\sos.dll"))
59323328

接下来我想像这样对分机进行调用:

>>> print(callExt(59323328, "!dumpheap -stat", ""))

( API中没有记录第三个参数。)

但是,它给了我错误

The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework64\2.0.50727\sos.dll) failed
Win32 error 0n126
"The module could not be found."
Please check your debugger configuration and/or network access.

我在!pycmd命令提示符下执行所有这些操作。

如何从 PyKd 调用 SOS 命令并处理输出?

版本:

WinDbg 9.2.9200.16384 x64
调试 64 位应用程序
Pykd 0.2.0.26 64 位
Python 2.7.3

4

2 回答 2

2

您可以使用 python 糖:

loadExt( r "C:\Windows\Microsoft.NET\Framework64\v2.0.50727\sos.dll")

关于输出长度,请参阅 pykd 问题跟踪器,我发表了评论。

于 2014-01-13T07:24:41.533 回答
1

愚蠢的错误,我应该像这样逃避路径:

>>> print(loadExt("C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727\\sos.dll"))
于 2014-01-11T22:06:43.430 回答