0

アプリケーションをリモートでデバッグするために CDT を使用しています。アプリケーションはソース フラグメントを構築し、それをメモリに JIT します。デバッグのために、インメモリ ELF/DWARF イメージを作成して GDB JIT インターフェイスに登録し、DWARF に対応するソース ファイルをローカル (ターゲット) ファイルシステムに書き込みます。

問題は、デバッガのフロントエンドがホスト ファイリング システムでソース ファイルを見つけることを期待していることです。すべての JIT イベントの後でソース ファイルをターゲットからホストに手動でコピーすると、デバッガーはソースをステップ実行できますが、これは非現実的です。JITにファイルをホストにアップロードさせるには、JITがデバッグされている(およびどこから)かを認識する必要があります。必要に応じて、ターゲット ファイル システムからソース ファイルを取得するために、gdbserver (CDT) を取得する方法はありますか?

GDB JIT インターフェースに渡される ELF/DWARF イメージを作成するので、代替パスを使用してソース ファイルの場所を記述できます。

4

1 に答える 1

0

gdbserver プロトコルは、すでにリモート ファイルのフェッチをサポートしています。

トリックは、JIT イベントに応答して、GDB がフェッチ コマンドを自動的に発行するようにすることです。これは、Python スクリプトを使用すると非常に簡単に実行できます。残念ながら、JIT イベントは Python に公開されていないようです

GDB bugzillaに機能リクエストを提出することをお勧めします。

于 2012-07-06T21:23:23.930 に答える