关于在VS2005用C++断点调试的一个奇怪问题

rocyone 2009-08-26 10:07:08
前天我碰上了一件颇为让我奇怪的事情,我有一个工程,是写一个DLL的,而这个DLL的运行则是由一个已经存在的Release版程序加载(我无此Release版本程序的源码);以前在这个工程调试DLL功能的时候,设置断点是可以进去的(用已存在的Release程序加载这个DLL进行调试);而前天工程重建了之后,在DLL内设置断点调试时,死活进不去断点,提示 No symbols have been loaded for this document.在网上看了好些相应的回答,都没法解决。因为以前是可以进入断点调试的,所以我相信这应该是VS环境设置的问题,我在Debugging选线试了好一阵子都没法解决,盼望精通VS环境配置的高手解答一二,不胜感谢。
...全文
265 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenkeisonlyone 2009-09-01
  • 打赏
  • 举报
回复
呵呵,补遗。
在“Solution Explorer”中选中你需要调试的工程,右键选择“Properties”,在随后出现的PropertyPages对话框里选择“Configuration Properties”主节点下的“C\C++”以及“General”,在“Debug Information Format”选项选择“Program Database(/Zi)”,同时“Linker”以及“Debugging”,在“Generate Debug Info”选项选择“Yes(/DEBUG)”试一下。
chenkeisonlyone 2009-09-01
  • 打赏
  • 举报
回复
在“Solution Explorer”中选中你需要调试的工程,右键选择“Properties”,在随后出现的PropertyPages对话框里选择“Configuration Properties”主节点下的“Linker”以及“General”,在“Enable Incremental Linking”选项选择“Yes(/INCREMENTAL)”试一下。
相关中文翻译,因为我英文比较差,请强人帮忙吧,呵呵。
rocyone 2009-08-31
  • 打赏
  • 举报
回复
前几天出差了,今天回来才看到大家的留言。
这里有两点细节没阐述清楚,在这里补充下。
1.我用的Release版程序调用这个DLL,功能是完全正常的,所以可以肯定该DLL是被正确加载了。但无论我在Release或者Debug状态,都没法让它进入断点;
2.因为这个工程以前我用的时候是可以进行单步调试的,而最近需要加新功能,所以在原有的基础上继续追加,但是我不小心将原版的源码工程给Delete掉了(甚是汗颜),后来从备份服务器上得到了先前使用版本的源码(包括SLN文件等工程文件),重新启动工程后,就出现这样的问题了。所以我觉得应当是在VS的环境设置选项出的问题。
3.试过删除所有的调试信息文件而后重新建立工程,并且对工程属性的Debugging选项卡进行了一些设置,但是问题依然。故此来CSDN找大家帮帮忙~~
倘若有熟悉VS关于调试设置选项的,麻烦告知下,不胜感谢。
blueink_200451 2009-08-31
  • 打赏
  • 举报
回复
属性->属性页->调试
将可执行文件路径名添加到其中

不行了重启一下。
MoXiaoRab 2009-08-31
  • 打赏
  • 举报
回复
用附加功能难道不行吗?
kevindeng1986 2009-08-31
  • 打赏
  • 举报
回复
阅毕!
ugrg 2009-08-31
  • 打赏
  • 举报
回复
对于DLL调试,可以试试用你那个exe先跑起来,再你的VS的附加调试功能进行调式,还有,exe所调用的应该是你当前编译出来dll,不然好像调不进去。
bragi523 2009-08-26
  • 打赏
  • 举报
回复
要不把那个可执行文件和你的dll放到同一个目录
你也用release版本
bragi523 2009-08-26
  • 打赏
  • 举报
回复
因为那个release可执行文件要调用你的dll
而你的dll现在变了
所以执行起来肯定找不到你的dll了
自己写个测试工程吧
不要用那个可执行文件
wxf54318 2009-08-26
  • 打赏
  • 举报
回复
我觉得应该是,你的release根本就没调用到DLL,应该和DLL相关的路径有关,
Gothic_girl 2009-08-26
  • 打赏
  • 举报
回复
确认当前编译模式是debug,而非release
百事烟 2009-08-26
  • 打赏
  • 举报
回复
试试?
重启机器
把DLL工程copy至一个全新目录并删除掉ncb,
把应用程序copy至一个全新目录,并重新设置DLL工程指向这个应用程序进行调试
雪影 2009-08-26
  • 打赏
  • 举报
回复
DLL 调试方法
step1:Create Blank Workspace add two project DLL and TestDll

step2:DLL Project
1.Project Settings -> C/C++ ->Debug info ->Program Database for Edit and Continue
2.Project Settings -> Link ->Check Generate debug info check box

step3: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
雪影 2009-08-26
  • 打赏
  • 举报
回复
属性->属性页->调试
将可执行文件路径名添加到其中

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧