调试准备:C++项目类型

本部分介绍如何调试 Visual C++ 项目模板创建的基本项目类型。

请注意,创建 DLL 作为其输出的项目类型已分组到 调试 DLL 项目,因为它们共享的常见功能。

在本主题中

推荐的属性设置

Win32 项目

对于所有非托管调试方案,应以相同的方式设置某些属性。 下表显示建议的属性设置。 此处未列出的设置可能因不同的非托管项目类型而异。 有关详细信息,请参阅 C++ 调试配置的项目设置

配置属性 |C/C++ |优化节点

属性名称 设置
优化 设置为 “已禁用”(/0d)。 优化代码更难调试,因为生成的指令不直接对应于源代码。 如果你发现程序有一个仅在优化代码中显示的 bug,则可以打开此设置,但请记住,反汇编 窗口中显示的代码是从优化源生成的,该源可能与在源窗口中看到的内容不匹配。 其他功能(如单步执行)可能不会像预期的那样执行。

配置属性 |链接器 |调试节点

属性名称 设置
生成调试信息 应始终将此选项设置为 “是”(/DEBUG) 创建调试符号和调试所需的文件。 当应用程序进入生产环境时,可以将其设置为关闭。

在本主题中

Win32 项目

Win32 应用程序是用 C 或C++编写的传统 Windows 程序。 在 Visual Studio 中调试这种类型的应用程序非常简单。

Win32 应用程序包括 MFC 应用程序和 ATL 项目。 它们使用 Windows API,并且可以使用 MFC 或 ATL,但它们不使用公共语言运行时(CLR)。 但是,他们可以调用使用 CLR 的托管代码。

以下过程说明如何从 Visual Studio 中调试 Win32 项目。 调试 Win32 应用程序的另一种方法是在 Visual Studio 外部启动应用程序并附加到它。 有关详细信息,请参阅附加到运行中的进程

调试 C 或 C++ Win32 应用程序

  1. 在 Visual Studio 中打开项目。

  2. 在“调试”菜单上选择“启动”。

  3. 使用初步了解调试程序中讨论的技术进行调试。

手动设置调试配置

  1. 在“视图”菜单上,单击“属性页”。

  2. 如果“配置属性”节点尚未打开,则单击以打开该节点

  3. 选择“常规”,并将“输出”行的值设置为“调试”。

  4. 打开 C/C++ 节点,然后选择 常规

    调试 行中,指定要由编译器生成的调试信息的类型。 可以选择的值包括“程序数据库(/Zi)”或“用于‘编辑并继续’的程序数据库(/ZI)”。

  5. 选择“优化”,然后在“优化”行中,从下拉列表选择“禁用(/0d)”。

    优化代码更难调试,因为生成的指令不直接与源代码相对应。 如果你发现程序有一个仅在优化代码中显示的 bug,则可以打开此设置,但请记住,反汇编窗口中显示的代码是从优化源生成的,可能与源窗口中看到的内容不匹配。 单步执行等功能可能会错误地显示断点和执行点。

  6. 打开“链接器”节点,然后选择“调试”。 在第一个“常规”行中,从下拉列表选择“是(/DEBUG)”。 在调试时始终设置此值。

    有关详细信息,请参阅项目设置中的C++调试配置

    在本主题中