BPL包无法调试的问题


    由于系统结构是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是不匹配的,所以就无法调试。

    做开发不能调试实在是太痛苦了,终于在忍耐了一周之后要彻底解决这个问题,吃过晚饭七点多搞到现在凌晨两点,才算是搞清楚了,以后再也不会被包的调试困住了。



另静态引用bpl中的控件,调试bpl,指定Host程序,同时须注意版本一致。

每次编译bpl后重新编译Host,否则有的断点可以,有的断点失效。


你可能感兴趣的:(Build,Path,library,Delphi)