vs2008 调试问题

(一) 在Debug模式下,编译程序时,出现这样的错误:

fatal error C1010: 在查找预编译头时遇到意外的文件结尾。

解决方式:

选择出错的.cpp文件,打开其属性,选择 c/c++ ->预编译头 ->  创建/使用预编译头   将“使用预编译头(/Yu)”  修改为 “不使用预编译头” 即可。

注意:针对于每个出错的文件都要这样哦^_^

当然也可以这样,打开右击工程,选择属性, 选择c/c++ -> 预编译头 -> 创建/使用预编译头 ,将其修改为“不使用”即可。倘若工程中存在其它文件,请注意擅自修改是否会留下隐患。同时,这样的修改会导致每次编译过程都会很缓慢。

(二) 在Release模式下编译某程序,代码运行正常,结果调试的时候出现对话框提示:

“无法找到“XXX.exe”的调试信息,或者调试信息不匹配。未使用调试信息生成二进制文件。”

解决方式1:

1。选择 配置属性->链接器->调试->生成调试信息 改为 是  
2。选择 配置属性->C/C++ ->常规->调试信息格式 改为 用于“编辑并继续”的程序数据库(/ZI) ” 或 “程序数据库(/Zi)” 
3。选择 配置属性->C/C++ ->优化->优化 改为 禁用(/Od)

解决方式2:

将版本Release修改为Debug。

(三) 在Release模式下,调试程序时,出现无法命中断点,或者断点无效的问题出现,其解决方式:

(1)检查工程配置(打开工程属性):

1. C/C++ -> 常规 -> 调试信息格式: 程序数据库(/Zi)

2. C/C++ -> 优化 -> 优化: 禁用(/Od)

3. 链接器 -> 调试 -> 生成调试信息: 是(/DEBUG)

4. 链接器 -> 调试 -> 生成程序数据库文件: $(TargetDir)$(TargetName).pdb

(2) 选择工具 -> 选项->  调试 ->  常规:"要求源文件与原始版本完全匹配" 不要打勾

个人建议:条件允许的情况下,尽量使用Debug版本进行编译。

稍微拓展下---关于Relase与Debug的区别:

Debug:  调试版本,包含调试信息,并且不做任何优化,便于程序调试。

Release: 发布版本,进行各种优化,使得程序在代码大小和运行速度上达到最优,从而这就会导致为何添加新的代码后,断点可能会无效,甚至出现局部变量无法显示数据,或者断点错位的问题。

针对于两个版本,并没有本质上的区别,它们只是一组编译选项的集合,比如说:

Debug 参数含义:

/MDd /MLd 或 /MTd :使用 Debug runtime library (调试版本的运行时刻函数库)

/Od :关闭优化开关

/D :"_DEBUG" 相当于 #define _DEBUG,打开编译调试代码开关 (主要针对assert函数)

/ZI :创建 Edit and continue(编辑继续)数据库,这样在调试过程中如果修改了源代码不需重新编译

/GZ: 可以帮助捕捉内存错误

/Gm: 打开最小化重链接开关,减少链接事件

Release参数含义:

/MD /ML 或 /MT:  使用发布版本的运行时刻函数库

/O1 或 /O2: 优化开关,使程序最小或最快

/D: "NDEBUG" 关闭条件编译调试代码开关 (即不编译assert函数)

/GF :合并重复的字符串, 并将字符串常量放到只读内存, 防止被修改

时间: 2024-10-18 13:35:00

vs2008 调试问题的相关文章

win7 64 下 VS2008 调试、退出时错误的解决

最近调试老程序的时候发现原来的VS2008会偶尔在调试C++程序的时候出现程序未响应的情况,开始还以为是个案,后来出现的频率越来越高完全影响心情啊!! 准备花时间解决一下这个问题.网上搜索没有发现任何有价值线索,于是决定用上绝招--安装盘修复,但结果依然是那样.准备用process monitor监测一下,发现信息太多基本不太可能一一人工分析. 在解决问题的时候还发现了一个问题.启动VS2008后,打开一个项目,不做任何修改点全部保存,然后关闭VS2008,此时VS2008会出现异常100%可重

如何使VS2008 调试网站的根目录和IIS调试的一致?

用VS2008做asp.net网站调试时,经常会多出来一个目录,如http://localhost:1234/Foo/ , 由于一些图片的路径问题,我们不需要最后的/Foo/目录,而是像IIS调试那样,直接出现以下 的地址:http://localhost:1234/,那么怎么实现VS2008 调试网站时的根目录和IIS调试的 一致呢?步骤如下: (1) 打开已经存在的web项目. (2)使用Visual studio解决方案管理器,选中web站点项目 (3)去属性窗口(如果没有打开Visual

WinCE compact 7 VS2008 调试模式启动应用错误

在使用WinCE compact 7 VS2008 调试模式启动应用错误,平台是Telecips 89XX 系列,弹出的错误信息如下: Unhandled exception at 0x00019ef4 inMusicAgentHSTest_SDK.exe: 0xC0000005: 读取位置 0x6003043c 时发生访问冲突. 两个应用,都是使用 VS2008 建立的默认工程,未增加任何代码.两个应用单独运行一切 OK,启动多少次都不会出现任何问题.无论是 Debug.还是 Release

vs2008调试 Release(链接器来生成调试信息)

VS2008 Release 修改配置: 1.项目——>属性——>C/ C++ ——> 常规 ——>调试信息格式——>用于“编辑并继续”的程序数据库(/ZI) 2.项目——>属性——>C/ C++ ——> 优化——>优化——>禁用(/Od) 3.项目——>属性——>C/ C++ ——> 优化——>优化——>全程序优化(否) 4.项目——>属性——>链接器 ——>生成调试信息——>是(/DEBU

vs2008 调试时无法查看变量的值

项目---配置属性---C/C++---优化 把第一行“优化”值改为禁用

vs2008 调试时不会命中断点,源代码与原始版本不同,解决办法

当前不会命中断点,源代码与原始版本不同,解决办法 1.应该是自己一行里写的代码太长了 格式化一下 或者 换下行 2. VC直接把整个文件格式化了一次,断点就可以用了 菜单:编辑-〉高级-〉设置选定内容的格式 (Ctrl+K, Ctrl+F) 通过比较文件发现是由于制表符Tab(0x09)引起的,原因不详.

vs2008 远程调试js

调试的前提:vs2008编写的OCX控件供JS调用,单ocx所依赖的库文件只有在远程电脑上有,此时需要远程调试程序 1.  .远程计算机安装远程调试器:Remote Debugger,可以直接复制VS2008安装目录C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger下的X86目录,(X64对应64位机); 2.对于本地和远程计算机都要保证DCOM分布式服务是打开的,可以通过控制面板->服务中打开 3

vs2008与windbg的使用

WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件.使用windgb进行程序调试是一个很有必要的技能.WinDbg调试,离不开dump文件.以下是如何在VS中生成dump和WinDbg的入门. VS2008调试dump文件 http://blog.csdn.net/chenyujing1234/article/details/9357033 VS2008调试Release程序--Dump文件方式 h

vs2008【断点无效】解决方法

有时候,我们在用vs2008调试的时候,会出现断点无效.如下图: 第一反应,要看想一下是不是在debug下.如果在Release下,请参考我另篇文章 [怎么在Release下调试代码] 如果是在debug下: 1.检查工程配置是否设置正确. C++>General->Debug Information Format->Program Database (/Zi) C++>Optimization->Optimization->Disabled (/Od) Linker-