前天我碰上了一件颇为让我奇怪的事情,我有一个工程,是写一个DLL的,而这个DLL的运行则是由一个已经存在的Release版程序加载(我无此Release版本程序的源码);以前在这个工程调试DLL功能的时候,设置断点是可以进去的(用已存在的Release程序加载这个DLL进行调试);而前天工程重建了之后,在DLL内设置断点调试时,死活进不去断点,提示 No symbols have been loaded for this document.在网上看了好些相应的回答,都没法解决。因为以前是可以进入断点调试的,所以我相信这应该是VS环境设置的问题,我在Debugging选线试了好一阵子都没法解决,盼望精通VS环境配置的高手解答一二,不胜感谢。
解决方案 »
- 有关数据库的查询语句的。。。
- VS2005里怎么自动生成的CRange.h文件LPDISPATCH是Application?
- 请教一个CreateProcess相关的问题
- AVI文件操作的问题
- 《100分》如何枚举[ENUM]/遍历带资源[RESOURCE]文件[EXE/DLL]中的字符串表[STRING-TABLE]?
- 一些FlexGrid问题
- 急救!!如何注册ocx
- 急,关于在vc中调用存储过程的问题???????在线等
- 如何控制CAsyncSocket的onreceive事件,使它一次只接受一个数据包
- 我想快速掌握VC,请大家指点指点
- 在单文档程序中加一个对话框登录界面,登录退出时主界面总是要出现一下再消失
- CRichEditCtrl ole插入gif动态表情
将可执行文件路径名添加到其中
step1:Create Blank Workspace add two project DLL and TestDllstep2:DLL Project
1.Project Settings -> C/C++ ->Debug info ->Program Database for Edit and Continue
2.Project Settings -> Link ->Check Generate debug info check boxstep3:TestDll Project
1.Project Settings ->Debug ->Excutable for debug session ->input dir and filename
2.Project Settings ->Debug ->Working directory -> input dir
3.Project Settings ->Link ->Output file name ->input dir and filename
4.Project Settings ->link ->Object/library modules->input dll.lib
重启机器
把DLL工程copy至一个全新目录并删除掉ncb,
把应用程序copy至一个全新目录,并重新设置DLL工程指向这个应用程序进行调试
而你的dll现在变了
所以执行起来肯定找不到你的dll了
自己写个测试工程吧
不要用那个可执行文件
你也用release版本
这里有两点细节没阐述清楚,在这里补充下。
1.我用的Release版程序调用这个DLL,功能是完全正常的,所以可以肯定该DLL是被正确加载了。但无论我在Release或者Debug状态,都没法让它进入断点;
2.因为这个工程以前我用的时候是可以进行单步调试的,而最近需要加新功能,所以在原有的基础上继续追加,但是我不小心将原版的源码工程给Delete掉了(甚是汗颜),后来从备份服务器上得到了先前使用版本的源码(包括SLN文件等工程文件),重新启动工程后,就出现这样的问题了。所以我觉得应当是在VS的环境设置选项出的问题。
3.试过删除所有的调试信息文件而后重新建立工程,并且对工程属性的Debugging选项卡进行了一些设置,但是问题依然。故此来CSDN找大家帮帮忙~~
倘若有熟悉VS关于调试设置选项的,麻烦告知下,不胜感谢。
将可执行文件路径名添加到其中不行了重启一下。
相关中文翻译,因为我英文比较差,请强人帮忙吧,呵呵。
在“Solution Explorer”中选中你需要调试的工程,右键选择“Properties”,在随后出现的PropertyPages对话框里选择“Configuration Properties”主节点下的“C\C++”以及“General”,在“Debug Information Format”选项选择“Program Database(/Zi)”,同时“Linker”以及“Debugging”,在“Generate Debug Info”选项选择“Yes(/DEBUG)”试一下。