做开发不能调试实在是太痛苦了,忍了好久了
由于系统结构是Host主程序动态加载BPL包的模式。所以用到了Package的调试,但无论如何有一个包就是无法调试(加断点不起作用)。经过N久的查找,发现:
    1.包Package在编译,生成的时候会自动产生DCP和BPL文件,缺省产生到Delphi\Projects\BPL下。
    2.BPL文件的生成路径可以在Project/Options/Directories中修改
    3.多个Package联合调试时,最好把DCP生成在同一个路径下,并且在Tools/Invironment Options/Library的Library Path中添加。
    4.调试时Delphi在Library中按从上到下的顺序搜索DCP文件,如果第一个搜索到的DCP和最新的源代码是配套的,会进入调试,否则不会进入调试。    经常遇到这样的问题:首先保存了一个包,顺手Build了一下,这时候生成的BPL和DCP都在Delphi\Projects\BPL下。后来又改了Project中的DCP生成路径,生成到专门放DCP的文件夹。在后来的运行调试中,由于系统第一个会找到我生成到Delphi\Projects\BPL下的那个没有任何功能的DCP,自然和我目前的BPL是不匹配的,所以就无法调试。 

解决方案 »

  1.   

    把 Delphi\Projects\BPL 下你自己的删除。 建包时就设置好dcp和bpl的生成路径。
      

  2.   

    有同感。用BPL开发应该是Delphi精髓,BPL就像Java,.Net的类库,Delphi程序可以靠它共享自如。
      

  3.   

    密切关注,这个问题我也遇到过,过来就放弃了bpl编程,也不方便多少。采用了application+dll+存储过程了。
      

  4.   

    把所要调试的程序所用到的bpl的输入路径指向exe所在的文件夹,在run->parameters下把host aoolication 设置为要执行的exe,这样就把所要用的bpl和所要执行的exe连在了一起,这样就可以用断点跟踪了 ,以上是我的理解,此贴是讨论贴,集思广益
      

  5.   

    应该可以吧,我们都是用BPL模块开发,调用的时候都没问题,和调试dll一样, 指定 run-paraeters 一个可执行程序,就可以正常调试了。