本帖最后由 mingfei200169 于 2012-10-08 11:38:45 编辑

解决方案 »

  1.   

    1.重启delphi试试
    2.检查debug选项中的设置
    3.把代码复制到其它文本编辑器中看看有没有不可见的字符,特别是回车换行符。delphi中要以#13#10来换行,有时从其它地方复制代码过来,是用#13或#10为换行符,这样虽然delphi中显示是正确的,但编译时认为是同一行,这样就造成代码行错位,你在这里设置断点,实际上有可能是在另一行无法设置断点的行上。
      

  2.   

    应用程序exe和DLL不在同一个目录下面也会不进入断点。
      

  3.   

    附加一个宿主文件,启动调试时运行宿主文件,然后调用到DLL时,会自动停到DLL断点的地方。
    你可以百度搜索一下“Delphi 加断点调试DLL”
      

  4.   

    我曾经遇到的情况多半是生成目录和启动目录不一致导致的,例如,
    dll编译的目录为
    C:\Documents and Settings\All Users\Documents\RAD Studio\9.0\Bpl
    而实际启动的目录为(exe启动时会优先加载当前目录的dll)
    C:\Program Files\<程序目录>
    就会出现断点无效的情况,
    解决办法是删除执行目录下的dll,同时在“系统环境变量”中加上dll的生成目录,重启Delphi就可以了
      

  5.   

    输出路径设置是相对路径,主程序也是的,主程序exe放在一个目录,动态库放在exe所在目录下的一个子目录中。
      

  6.   

    DLL的Complier选项中有两个 Include,都勾上。
      

  7.   

    楼上说的都对,动态库的调试,还需要CTRL+ALT+M看下载入的dll,有没有调试信息symbolreload symbol table