是否可以使用 Visual Studio 构建 WinDBG 扩展?

Posted

技术标签:

【中文标题】是否可以使用 Visual Studio 构建 WinDBG 扩展?【英文标题】:Is it possible to build WinDBG extensions using Visual Studio? 【发布时间】:2013-06-18 16:25:16 【问题描述】:

要构建 WinDBG 调试器extensions,我们必须使用 WDK 附带的 Build 实用程序,还是可以使用 Visual Studio? (特别是,我会对 VS2010 SP1 感兴趣。)

根据 Debugging Tools for Windows 的文档,唯一的选择应该是 Build 实用程序:

Windows 调试 |调试器引擎和扩展 API |简介

所有调试器扩展都应该使用 构建实用程序。构建实用程序包含在 Windows 驱动程序工具包中 (WDK)。

...但也许文档没有更新?

此外,为什么 Build 实用程序是构建 WinDBG 扩展的唯一选择? 那里隐藏着什么“陷阱”?

【问题讨论】:

【参考方案1】:

在 WinDBG 扩展的情况下没有什么特别的 - 只需构建一个 DLL,使用正确的函数名称和调用约定,然后就可以了。所以 Visual Studion 应该可以完美地做到这一点。

您确实需要为 DLL 生成自己的 .def 文件以导出函数。

本页介绍了如何使用 nmake 进行操作。在 VS 中应该完全可以执行相同的步骤。

http://www.codeproject.com/Articles/6522/Debug-Tutorial-Part-4-Writing-WINDBG-Extensions

【讨论】:

谢谢...所以我假设上述段落中存在“文档错误”。 也许吧。我更多地将其视为“这就是我们在 MS 中的做法,我们建议您也这样做”。虽然它使用了“应该”这个词,但我认为它实际上并没有说“你必须这样做”,它只是说“你可以这样做”。当然,“构建”的一个优点是它使用 WDK 使用的编译器版本,这(可能)也是用于该 WDK 附带的 WinDBG 的编译器,因此不会有任何次要编译器导致问题的错误问题 - 这可能就是他们建议您这样做的原因。当然,MS作者在我的想法中可能有不同的含义。

以上是关于是否可以使用 Visual Studio 构建 WinDBG 扩展?的主要内容,如果未能解决你的问题,请参考以下文章

MSbuild是否要求在构建服务器上安装Visual Studio?

我真的需要 Visual Studio

是否可以从 Mono 的命令行构建 MSBuild 文件(visual studio sln)?

是否可以在Windows容器中安装Visual Studio

Visual Studio:创建简单的 GUI

是否有可以将 Visual Studio 目标文件转换为 GCC 格式的工具?