调试准备:C++项目类型
本部分介绍如何调试 Visual C++ 项目模板创建的基本项目类型。
请注意,创建 DLL 作为其输出的项目类型已分组到 调试 DLL 项目,因为它们共享的常见功能。
在本主题中
建议的属性设置
对于所有非托管调试方案,应以相同的方式设置某些属性。 下表显示建议的属性设置。 此处未列出的设置可能因不同的非托管项目类型而异。 有关详细信息,请参阅 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 应用程序
在 Visual Studio 中打开项目。
在“调试”菜单上选择“启动”。
使用初步了解调试程序中讨论的技术进行调试。
手动设置调试配置
在“视图”菜单上,单击“属性页”。
如果“配置属性”节点尚未打开,则单击以打开该节点
选择“常规”,并将“输出”行的值设置为“调试”。
打开 C/C++ 节点,然后选择 常规。
在 调试 行中,指定要由编译器生成的调试信息的类型。 可以选择的值包括“程序数据库(/Zi)”或“用于‘编辑并继续’的程序数据库(/ZI)”。
选择“优化”,然后在“优化”行中,从下拉列表选择“禁用(/0d)”。
优化代码更难调试,因为生成的指令不直接与源代码相对应。 如果你发现程序有一个仅在优化代码中显示的 bug,则可以打开此设置,但请记住,反汇编窗口中显示的代码是从优化源生成的,可能与源窗口中看到的内容不匹配。 单步执行等功能可能会错误地显示断点和执行点。
打开“链接器”节点,然后选择“调试”。 在第一个“常规”行中,从下拉列表选择“是(/DEBUG)”。 在调试时始终设置此值。
有关详细信息,请参阅项目设置中的C++调试配置。