【问题标题】:Should it be possible to create a 64 bit / 32 bit wrapper extension?是否可以创建 64 位/32 位包装器扩展?
【发布时间】:2014-01-13 16:11:52
【问题描述】:

某些 WinDbg 扩展仅提供 32 位版本。如果我愿意

  • 为 WinDbg 编写 64 位扩展
  • 编写一个与 64 位扩展通信的 32 位应用程序(可执行文件)
  • 1:1 将 DbgEng API 的所有调用从 64 位扩展转发到可执行文件

那么是否可以在 64 位 WinDbg 上重用 32 位插件?

假设是,它不需要处理指针,只是帮助字符串处理(在调试器上执行命令并解析其文本输出)。

【问题讨论】:

    标签: 32bit-64bit windbg


    【解决方案1】:

    我不能发表评论,所以发表一个答案。这是对您上述评论的回答

    如果你想使用 x86 代理进程来运行 x86 windbg 插件,你将有同样的调试限制:你的代理进程将无法附加到 x64 应用程序

    【讨论】:

    • 我想写一个 64 位扩展,所以它将在 64 位 WinDbg 中运行。然后我进行一些进程间通信以与 32 位可执行文件进行通信。 32 位应用程序会将调用转发到 32 位 WinDbg 扩展。如果这样可行,我可以使用 64 位 WinDbg。
    • 我觉得太难了。您需要拦截 x86 插件中的所有调试引擎调用,并将所有参数重定向回 x64 windbg,在 x64 环境中执行并将结果返回给 x86 windbg。你可以尝试用Debug Engine接口做OLE服务器,通过MIDL+RPC的方式来做。
    【解决方案2】:

    我觉得用x86 windbg比较好用。 windows的调试工具两者兼有。

    【讨论】:

    • 使用 WinDbg x86 调试 64 位应用程序?这不起作用:“无法附加到进程 3004,NTSTATUS 0xC00000BB”,所以我必须使用 WinDbg x64。
    猜你喜欢
    • 2015-02-04
    • 2015-08-19
    • 2013-04-04
    • 2012-03-08
    • 1970-01-01
    • 2012-05-09
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多