次のコードを持つ単純な VCL win32 アプリケーションを作成しました。
procedure TForm5.Button1Click(Sender: TObject);
begin
ShowMessage('bingo');
end;
ランタイム パッケージを使用してアプリケーションをコンパイルし、次のスイッチをオンにしました。
- デバッグ情報 -> true
- リモート デバッグ シンボルを含める -> true
- アサーション、デバッグ情報、ローカル シンボル、debug dcus を使用 -> true
出力には次のファイルがあります。
- Project1.exe
- project1.rsm
2 つのランタイム パッケージは次のとおりです。
- vcl160.bpl
- rtl160.bpl
Button1Click ハンドラーにブレーク ポイントを設定しました。アプリケーションをデバッガー モードで実行すると、ローカル IDE デバッガーはそこで停止します。
次に、ランタイム パッケージを使用してアプリケーションをリモート デバッグしてみます。
リモート プロファイルを 32 ビット Windows プラットフォームに割り当てます。テスト接続は、リモート プロファイルで機能します。PAServer もリモート マシンで開始されました。Delphi XE2 IDE デバッガーでアプリケーションを実行しようとすると、次の 4 つのファイルがリモート マシンにコピーされていることがわかります。
- Project1.exe
- project1.rsm
- vcl160.bpl
- rtl160.bpl
ただし、イベント ログには次のように表示されます。
Module Load: Project1.exe. No Debug Info. Base Address: $00400000. Process Project1.exe (1676)
モジュールにはデバッグ情報がないため、すべてのブレークポイントはトリガーに失敗します。
ランタイム パッケージを使用せずに単一ファイルの .exe アプリケーションをビルドしようとしました。同じリモート デバッガーの手順が機能し、アプリケーションをリモートでデバッグできます。
ランタイム パッケージでビルドされたアプリケーションでリモート デバッグが失敗する原因は何ですか?