リモート Linux システムでビルドおよびテストされる C コードを開発するために、Windows で Eclipse CDT を実行しています。現在、コードが Windows でコンパイルされることはありません。
CDT を使用して、gdbserver の下の Linux ターゲットでリモート プロセスを開始し、Windows ホストから gdb を接続できます。ただし、gdb は次のようなエラーですぐに失敗します。
warning: A handler for the OS ABI "GNU/Linux" is not built into this configuration
of GDB. Attempting to continue with the default i386 settings.
[...]
Remote 'g' packet reply is too long: 74afe9bff0aee9bf02000000f4af4a00a0aee9bf[...]
2 つの Linux システム間でのデバッグは問題なく機能するため、Windows ホスト側で何か間違ったことをしていることは明らかです。私の具体的な質問は次のとおりです。
gdb の Cygwin バージョンは、リモートの Linux プロセスをデバッグするのに十分ですか?それとも、Windowsで実行して Linux プロセスを操作するには、特別な cross-gdb が必要ですか? もしそうなら、そのようなgdbを手に入れることができる場所はありますか?
gdb を使用したリモート デバッグでは、ホスト システムでシンボルを使用できる必要があります。これを達成する最も簡単な方法は何ですか?Linux ターゲットでのビルドによって生成されたシンボルを Windows ホストにコピーすることはできますか? それとも、Windows で完全なビルドを実行する必要がありますか? ターゲットにのみシンボルを提供できるように、この要件を回避する方法はありますか?
ありがとう、
-R
詳細: RSE FAQにいくつかのヒントがありますが、残念ながらまだブロックされています。FAQ では、次の 2 つのアプローチについて説明しています。
- ssh を介してリモート システムで gdb クライアントを起動します。ここでの問題は、CDT デバッグ ランチャーの特定のフィールドがローカル システム (プロジェクト パス、実行可能パスなど) に関連付けられていることです。
- Windows からの Linux プロセスのデバッグをサポートする gdb のクロスデバッグ バージョンをビルド/取得します。ここでの問題は、これを達成する方法に関する情報がほとんどないことです。
CDT フォーラムでもこの問題を提起しました。