0

我正在使用 pykd 并且能够将它与我的调试器 (windbg) 连接,但由于某种原因,我无法处理任何命令,pykd.dbgCommand不确定问题是什么,因为我尝试了多种方法来尝试解决问题:

  • 重新安装pydk + python
  • 在 python2.7、python3.5、python3.8 上试过
  • 尝试了不同的系统+不同的调试会话

当我尝试在windbg会话上运行命令时,它能够产生结果,但不知何故,它现在能够从python控制台做到这一点。

pykd.dbgCommand("!analyze -v")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pykd.DbgException: Call IDebugClient::GetOutputCallbacks failed
HRESULT 0x80010107

任何帮助,将不胜感激。

感谢大家提前回答。

4

1 回答 1

0

我尝试使用来自 python REPL 的三个不同转储运行 dbgCommand('!analyze -v'):

  1. 用户模式本机转储:好的
  2. 内核模式转储:好的
  3. 托管应用转储:
0:000> !py
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> dbgCommand('analyze -v')
Traceback (most recent call last):
  File "<console>", line 1, in <module>
pykd.DbgException: Call IDebugControl::ExecuteWide failed
HRESULT 0x80040205

然后我运行这个脚本:

import pykd
a = pykd.dbgCommand('!analyze -v')
print(a)

此脚本适用于所有这些转储。

我相信有一个错误。我打开了一个问题: https ://githomelab.ru/pykd/pykd-ext/-/issues/15

您能否提供一个转储,将错误重现到 pykd 问题跟踪器。

于 2021-05-08T20:02:45.740 回答