问题描述
我正在使用 pykd 并且能够将它与我的调试器 (windbg) 连接,但由于某种原因我无法使用 pykd.dbgCommand
处理任何命令,不确定问题是什么,因为我已经尝试过尝试解决问题的多种方法:
当我尝试在 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
任何帮助将不胜感激。
感谢大家提前回答。
解决方法
请在windbg中运行这个命令:
!pykd.info
!py
并在此处发布输出
,我尝试使用来自 python REPL 的三个不同转储运行 dbgCommand('!analyze -v'):
- 用户模式本机转储:好的
- 内核模式转储:好的
- 托管应用转储:
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 问题跟踪器的转储。