调试准备:C++ 项目类型
本节描述如何调试用 Visual C++ 项目模板创建的基本项目类型。
请注意,那些将 DLL 作为其输出创建的项目类型由于其共同的特性已被分组到调试 DLL 项目。
本主题内容
建议的属性设置
应以相同的方式设置所有非托管调试方案的某些属性。 以下各表显示了建议的属性设置。 未在此处列出的设置可能有各种不同的非托管项目类型。 有关详细信息,请参阅 C++ 调试配置的项目设置。
配置属性 | C/C++ | 优化节点
属性名 | 设置 |
---|---|
优化 | 设置为“禁用(/0d)”。优化代码更难调试,因为生成的指令与源代码并不直接对应。 如果发现程序具有只出现在优化代码中的 bug,则可以打开此设置,但应记住“反汇编”窗口中显示的代码是从可能与在源窗口中见到的内容不匹配的优化源生成的。 其他功能(如单步执行)可能不会像预期的那样执行。 |
配置属性 | 链接器 | 调试节点
属性名 | 设置 |
---|---|
生成调试信息 | 应始终将此选项设置为“是(/DEBUG)”以创建调试所需的调试符号和文件。 在应用程序进入成品阶段时,可以将其设置为关闭。 |
Win32 项目
Win32 应用程序是用 C 或 C++ 编写的传统 Windows 程序。 在 Visual Studio 中调试此类应用程序非常简单。
Win32 应用程序包括 MFC 应用程序和 ATL 项目。 Win32 应用程序使用 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++ 调试配置的项目设置。