微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pykd 有问题pykd.DbgException:Call IDebugClient::GetOutputCallbacks failed HRESULT 0x80010107

如何解决pykd 有问题pykd.DbgException:Call IDebugClient::GetOutputCallbacks failed HRESULT 0x80010107

我正在使用 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

任何帮助将不胜感激。

感谢大家提前回答。

解决方法

请在windbg中运行这个命令:

!pykd.info
!py

并在此处发布输出

,

我尝试使用来自 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 问题跟踪器的转储。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。