我們已經構建了一個使用包和組件的應用程序。當我們調試應用程序時,IDE中的「事件日誌」通常會顯示我們的BPL正在加載而沒有調試信息(「無調試信息」)。這沒有意義,因爲我們所有的包和EXE都是用調試構建的。調試時Delphi應用程序有「無調試信息」
_(each project) | Options | Compiling_
[ x ] Assertions
[ x ] Debug information
[ x ] Local symbols
Symbol reference info = "Reference info"
[ ] Use debug .dcus
[ x ] Use imported data references
_(each project) | Options | Linking_
[ x ] Debug information
Map file = Detailed
我們有4個項目,全部建成與運行pacakges:
- Core.bpl
- Components.bpl
- Plugin.bpl(同時使用#1 &#2)
- MainApp.exe(使用#1)
個問題觀察
1)很多次,當我們調試中,Components.bpl裝有調試信息,但在「局部變量」窗口中的所有值均爲空白。如果將鼠標懸停在代碼中的變量上,則不會顯示彈出窗口,並且「評估」窗口也不顯示任何內容(「結果」窗格始終爲空)。
2)有時,事件日誌會顯示各種BPL的「無調試信息」。例如,如果我們激活Plugin.bpl項目並將其設置爲Run |參數的主機應用程序爲MainApp.exe,然後按F9,除了Plugin.bpl模塊外,所有模塊似乎都加載了「Has Debug Info」。加載時,事件日誌顯示「無調試信息」。但是,如果我們關閉應用程序並立即按F9,它將再次運行而不重新編譯任何內容,並且這次Plugin.bpl加載了調試(「有調試信息」)。
問題
1)什麼會導致 「局部變量」 窗口不顯示值是多少?
2)爲什麼在BPL符合調試和所有調試文件(dcu,map等)可用時,BPL有時會加載沒有調試信息?
結合BPLs擺脫問題不是一個好的解決方案。想象一下,如果您擁有數百個動態包,則無法將其合併爲一個BPL。 – 2012-10-05 02:02:43
@ChauCheeYang - 我們有幾十個其他BPL。造成這個問題的只是這兩者的分離。在我們的例子中,將這兩者結合是可以接受的,而將其他幾十個分開......這可能與Components.bpl有很大關係,這很大程度上取決於Core.bpl。 – 2012-10-05 02:07:13
您是否對'debug'和'release'配置使用optset reference? – 2012-10-05 08:29:15