パッケージとコンポーネントを使用するアプリケーションを構築しました。アプリケーションをデバッグするとき、IDEの「イベントログ」には、デバッグ情報なしでBPLがロードされていることが示されることがよくあります(「デバッグ情報なし」)。すべてのパッケージとEXEはデバッグで構築されているため、これは意味がありません。
_(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つのプロジェクトがあり、すべてランタイムパッケージで構築されています。
- Core.bpl
- Components.bpl
- Plugin.bpl(#1と#2の両方を使用)
- MainApp.exe(#1を使用)
観察された問題
1)デバッグするとき、多くの場合、Components.bplにはデバッグ情報がロードされますが、[ローカル変数]ウィンドウのすべての値が空白になります。コード内の変数の上にマウスを置くと、ポップアップは表示されず、[評価]ウィンドウにも何も表示されません([結果]ペインは常に空白です)。
2)さまざまなBPLのイベントログに「デバッグ情報なし」と表示されることがあります。たとえば、Plugin.bplプロジェクトをアクティブにして、Run | パラメータのホストアプリケーションをMainApp.exeにして、F9キーを押すと、Plugin.bplモジュールを除くすべてのモジュールが「デバッグ情報あり」でロードされているように見えます。ロードすると、イベントログに「デバッグ情報なし」と表示されます。ただし、アプリを閉じてすぐにF9キーを押すと、何も再コンパイルせずにアプリが再度実行され、今回はPlugin.bplにデバッグが読み込まれます(「デバッグ情報があります」)。
質問
1)「ローカル変数」ウィンドウに値が表示されない原因は何ですか?
2)BPLがデバッグに準拠していて、すべてのデバッグファイル(dcu、mapなど)が使用可能な場合、BPLがデバッグ情報なしでロードされることがあるのはなぜですか?