DebuggerEx – 自定义 Visual C++ 调试器






4.39/5 (6投票s)
2005年6月12日
5分钟阅读

63750

744
这是一个使用 ATL COM 构建的 Visual Studio 插件组件。它将帮助您自定义 Visual C++ 调试器的一些功能。该插件将使用 Autoexp.dat 文件将您自己的数据类型配置到调试器的工具提示显示中。
引言
Microsoft Visual C++ 为调试提供了非常好的支持。它不仅提供默认的调试功能,还支持自定义。由于调试是开发过程中最重要的阶段,因此此功能可以被认为是 Visual C++ 的真正强大之处。在本文中,我将介绍一个实用工具,它是一个使用 ATL COM 构建的 Visual Studio 插件组件。该插件将帮助您自定义 Visual C++ 调试器的一些功能。
理论
我们都熟悉调试器的工具提示显示。在调试过程中,只需将光标放在相应的变量上即可查看数据。但无法使用此方法查看所有类型的数据。此功能仅限于一些基本数据类型和一些 MFC 类和结构。此外,我们还无法查看自定义类或结构对象的变量数据。对于我们自己的结构或类,您只能看到三个点。我们可以使用监视窗口来验证数据。但在这种情况下,工具提示显示是不可能的。这使得我们在调试时工作变得更加困难。正如我之前所说,在这里我们可以利用 Visual C++ 调试器的真正强大之处,即用我们的自定义数据类型来自定义调试器。
Visual C++ 调试器有一个名为 AutoExp.dat 的配置文件,通过它可以简单地硬编码来自定义数据类型及其工具提示显示。该文件位于 <InstallDir>\ Microsoft Visual Studio\Common\MSDev98\Bin。我们可以在此文件的 [AutoExpand] 部分添加自己的条目。该插件将帮助您使用此文件将您自己的数据类型配置到调试器的工具提示显示中。
DebuggerEx 插件
以下是此插件提供的功能
- 支持以下数据类型的工具提示显示。
- 基本数据类型(
int
、float
、char
、char[]
等)。 - VC++ 支持的标准数据类型(
CString
、SYSTEMTIME
、COleDateTime
等)。
- 基本数据类型(
- 支持特定数量的数组元素(如
CStringArray
、CUIntArray
等)的工具提示显示。 - 支持我们自己的类和结构的工具提示显示。
源代码中有什么
以下是主要类及其职责
CMainDlg
此类包含此实用工具主窗口的代码。此类具有以下职责
- 从 AutoExp.dat 读取现有的调试器配置。
- 在主窗口中显示它们。
- 方便用户添加、删除和编辑条目。
- 将更新的调试器配置存储到 AutoExp.dat 中。
CInputDlg
此类帮助您添加或编辑调试器的条目。
CRegistryManager
此类代表此实用工具处理所有注册表操作。
安装
由于更新注册表的需求取决于安装的 Visual Studio 版本,因此有一个名为 SetUp.exe 的应用程序用于安装此插件。以下是安装步骤
- 运行 SetUp.exe。(在此之前,请关闭所有 msdev.exe 实例,否则设置程序会提示您关闭它们。)
- 运行 MSDEV.exe。
- 在 Visual Studio IDE 中调用“工具”->“选项”->“自定义”。
- 转到“插件和宏”选项卡。
- 从左侧窗格中选择
DebuggerEx
类。 - 单击“关闭”按钮。
如果缺少 setup.exe,我们可以通过以下步骤安装此调试器实用工具
- 停止所有 MSDEV.exe 实例。
- 运行 RegSetup.reg,或创建以下注册表项。
HKEY_CURRENT_USER\Software\DebuggerEx\SetUp.
- 将 Visual Studio 版本作为注册表项的值。[例如:对于 Visual Studio 6,使用 6.0 作为值。]
- 将 DebuggerEx.dll 复制到 <InstallDir>\ Microsoft Visual Studio\Common\MSDev98\Bin。
- 运行 MSDEV.exe。
- 在 Visual Studio IDE 中调用“工具”->“选项”->“自定义”。
- 转到“插件和宏”选项卡。
- 从左侧窗格中选择
DebuggerEx
类。 - 单击“关闭”按钮。
卸载
- 运行 MSDEV.exe。(确保只有一个 MSDEV.exe 实例正在运行。)
- 在 Visual Studio IDE 中调用“工具”->“选项”->“自定义”。
- 转到“插件和宏”选项卡。
- 取消选中左侧窗格中的
DebuggerEx
类。 - 单击“关闭”按钮。
- 运行 UnInstall.exe。
自定义我们自己的数据类型
完成安装过程后,第一个功能将激活。但对于第二个功能(即,自定义类型的工具提示显示),我们必须执行以下步骤
- 从 Visual Studio IDE 的工具栏调用
DebuggerEx
插件。将显示一个对话框,如图 1 所示。以下是对话框中的控件- 一个列表控件,用于显示所有自定义类的名称。
- “添加”按钮,用于将新类添加到自定义类列表中。
- “编辑”按钮,用于修改已在类列表中输入的类。
- “删除”按钮,可帮助您从类列表中删除一个类。
- “应用”按钮,用于将更改应用到调试器。
- “确定”按钮,用于在将更改应用到调试器后关闭对话框。
- “取消”按钮,用于在不将更改应用到调试器的情况下关闭对话框。
- “关于”按钮,用于显示有关
DebugerEx
的一些信息。 - 编辑字段和一个
Spin
控件,用于自定义CStgingArray
、CUIntArray
、CByteArray
等数据类型的工具提示显示。字段中的数字指定在工具提示中显示多少个数组元素。
- 单击“添加”按钮。将显示一个新的对话框(如图 2 所示),用于读取有关新类的名称的信息。以下是该对话框中显示的控件
- “类名”编辑字段,用于输入新类的名称。
- 一个列表控件,将显示有关新类的信息。
- 列表控件每列下方的三个编辑框,用于向列表控件添加和更新信息。
- “添加”按钮将根据在编辑字段中输入的数据向列表控件添加一个新项。
- “更新”按钮将根据在编辑字段中输入的数据更新列表控件中的现有项。
- “删除”按钮将删除列表控件中的一个项。
- “确定”按钮。
- “取消”按钮。
- 输入所有数据成员信息后,单击“确定”按钮。
- 然后单击主对话框的“应用-确定”或“确定”按钮。
结论
此版本的 DebuggerEx
可能存在一些限制。请随时发送反馈,并将其扩展为一个有用的调试实用工具。