今天调试一C++程序,按下F5,老是弹出一对话框显示信息:debugging information for ‘myproject.exe’ cannot be found or does not match. No symbols loaded. 翻译成中文大概就是:不能找到’myproject.exe’ 的调试信息或者调试信息不匹配。符号文件未加载。
起初,我以为是没有生成.pdb文件的缘故,于是,我右击项目文件,点击属性,展开配置属性节点,展开C/C++节点, 点击了General后把Debug Information Format设置为:Program Database for Edit & Continue(/ZI). 跟着,又检查了其它选项,并且确信在项目文件的Debug文件夹下生成了相应的.pdb文件。
可是做了这些,还是没用。仍然弹出那个该死的对话框。
我于是另外新启动了一个VS实例,新建了一个简单的工程,按下F5, 调试没问题,嘿,这问题到底出在哪儿呢??
然后,我心想,你丫狠!看来我得来点比你更狠的,于是乎,我干脆运行咱的.exe文件,然后单击Visual Studio 的Tools菜单,选择Attach to process…, 并找到我的应用程序,还是没用!!!!
关键时刻咱得保持冷静!!!!分析下!
第一,我这个工程是前几天做过的。
第二,.pdb文件有,手动加载文件也试过。不过没用。
第三,新建一个项目调试,没问题。
脑袋里突然冒出:是不是.suo文件在作怪??
——解决方案—–
1. 关闭掉Visual Studio 实例。
2. 找到解决方案下的.suo文件并删除之。
3. 重新启动Visual Studio,或者直接双击.sln文件打开
4. 成功调试程序!
后来意识到这是Visual Studio非常严重的问题。因为.suo貌似非常容易损坏,但是它里面包含了许多调试信息,包括项目的打开文件列表、所有的断点、以及监视窗口中所有的内容。
可以运行如下命令来删除掉该文件:del /f /a:h /s *.suo
希望对遇到该类问题的朋友有所帮助!!欢迎提出问题讨论!
另外 有一些解决方法:
首先打开菜单 项目->项目属性页
选择 配置属性->链接器->调试->生成调试信息 改为 是
选择 配置属性->C/C++ ->常规->调试信息格式 改为 用于“编辑并继续”的程序数据库(/ZI)
选择 配置属性->C/C++ ->优化->优化 改为 禁用(/Od)
//
VC应用的问题
简单 没有生成程序数据库。 在DEBUG陌生下,默认是生成调试数据库的,也就是可以调试。 RELEASE陌生下,也能调试,不过要做如下设置(如果DEBUG版不能调试,也参照如下设置) 解决方案资源管理器中选择工程,右键-》属性;弹出对话框 C/C++页面:常规:调试信息格式,release 下选“程序数据库/Zi”debug下或选“用于“编辑并继续”的程序数据库(/ZI)” C/C++页面:优化:优化,release陌生下修改为“禁用” 链接器页面:调试:生成调试信息,选“是”;生成调试数据库文件,在编辑框里面点击一下,它会设置默认的PDB文件名“$(OutDir)/$(ProjectName).pdb” 这样就行了!
我在程序中设置了一个断点,想在那停下来,看看变量的临时值是多少,可是为什么,设置断点后,按F5调试运行,出现一个对话框说,不包含调试信息,点确认继续,然后就出现汇编的东西了。请问怎么解决。我是新手
怎么设置成Debug呢?新手不懂再具体点
简单 没有生成程序数据库。 在DEBUG陌生下,默认是生成调试数据库的,也就是可以调试。 RELEASE陌生下,也能调试,不过要做如下设置(如果DEBUG版不能调试,也参照如下设置) 解决方案资源管理器中选择工程,右键-》属性;弹出对话框 C/C++页面:常规:调试信息格式,release 下选“程序数据库/Zi”debug下或选“用于“编辑并继续”的程序数据库(/ZI)” C/C++页面:优化:优化,release陌生下修改为“禁用” 链接器页面:调试:生成调试信息,选“是”;生成调试数据库文件,在编辑框里面点击一下,它会设置默认的PDB文件名“$(OutDir)/$(ProjectName).pdb” 这样就行了!