前天我碰上了一件颇为让我奇怪的事情,我有一个工程,是写一个DLL的,而这个DLL的运行则是由一个已经存在的Release版程序加载(我无此Release版本程序的源码);以前在这个工程调试DLL功能的时候,设置断点是可以进去的(用已存在的Release程序加载这个DLL进行调试);而前天工程重建了之后,在DLL内设置断点调试时,死活进不去断点,提示 No symbols have been loaded for this document.在网上看了好些相应的回答,都没法解决。因为以前是可以进入断点调试的,所以我相信这应该是VS环境设置的问题,我在Debugging选线试了好一阵子都没法解决,盼望精通VS环境配置的高手解答一二,不胜感谢。

解决方案 »

  1.   

    属性->属性页->调试
      将可执行文件路径名添加到其中
      

  2.   

     DLL 调试方法
    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
      

  3.   

    试试?
    重启机器
    把DLL工程copy至一个全新目录并删除掉ncb,
    把应用程序copy至一个全新目录,并重新设置DLL工程指向这个应用程序进行调试
      

  4.   

    确认当前编译模式是debug,而非release
      

  5.   

    我觉得应该是,你的release根本就没调用到DLL,应该和DLL相关的路径有关,
      

  6.   

    因为那个release可执行文件要调用你的dll
    而你的dll现在变了
    所以执行起来肯定找不到你的dll了
    自己写个测试工程吧
    不要用那个可执行文件
      

  7.   

    要不把那个可执行文件和你的dll放到同一个目录
    你也用release版本
      

  8.   

    前几天出差了,今天回来才看到大家的留言。
    这里有两点细节没阐述清楚,在这里补充下。
    1.我用的Release版程序调用这个DLL,功能是完全正常的,所以可以肯定该DLL是被正确加载了。但无论我在Release或者Debug状态,都没法让它进入断点;
    2.因为这个工程以前我用的时候是可以进行单步调试的,而最近需要加新功能,所以在原有的基础上继续追加,但是我不小心将原版的源码工程给Delete掉了(甚是汗颜),后来从备份服务器上得到了先前使用版本的源码(包括SLN文件等工程文件),重新启动工程后,就出现这样的问题了。所以我觉得应当是在VS的环境设置选项出的问题。
    3.试过删除所有的调试信息文件而后重新建立工程,并且对工程属性的Debugging选项卡进行了一些设置,但是问题依然。故此来CSDN找大家帮帮忙~~
    倘若有熟悉VS关于调试设置选项的,麻烦告知下,不胜感谢。
      

  9.   

    对于DLL调试,可以试试用你那个exe先跑起来,再你的VS的附加调试功能进行调式,还有,exe所调用的应该是你当前编译出来dll,不然好像调不进去。
      

  10.   

    属性->属性页->调试
      将可执行文件路径名添加到其中不行了重启一下。
      

  11.   

    在“Solution Explorer”中选中你需要调试的工程,右键选择“Properties”,在随后出现的PropertyPages对话框里选择“Configuration Properties”主节点下的“Linker”以及“General”,在“Enable Incremental Linking”选项选择“Yes(/INCREMENTAL)”试一下。
    相关中文翻译,因为我英文比较差,请强人帮忙吧,呵呵。
      

  12.   

    呵呵,补遗。
    在“Solution Explorer”中选中你需要调试的工程,右键选择“Properties”,在随后出现的PropertyPages对话框里选择“Configuration Properties”主节点下的“C\C++”以及“General”,在“Debug Information Format”选项选择“Program Database(/Zi)”,同时“Linker”以及“Debugging”,在“Generate Debug Info”选项选择“Yes(/DEBUG)”试一下。