5

Eclipse CDT と GNU ARM QEMU シミュレーターを使用しています。Eclipse は、QEMU で実行されている独自のgdbセッションを開始します。gdbserverOSX 端末からも接続できるようにして、より細かく制御できるようにしたいと考えています。また、Node.js スクリプトから GDB/MI を使用して、登録ステータスなどの有用なデータを取得し、Web ページで視覚化できるようにしたいと考えています。

独自の gdb セッションで QEMU シミュレーターをスタンドアロンで実行している場合は正常に接続できますが、Eclipse の gdb にピギー バックするか、gdbserver.

ありがとう!


https://sourceware.org/gdb/onlinedocs/gdb/Server.html (20.3.1.2)から:

gdbserver が実行されている場合、gdb は後で再度接続できます。このような再接続は、切断されたトレースなどの機能に役立ちます。完全を期すために、一度に接続できる gdb は 1 つまでです。


これまでのところ、私はそれを理解できず、ドキュメントからは不可能であるようです。

私が現在使用している解決策は、QEMU シミュレーターを端末から手動で実行することです。GNU ARM Eclipse デバッガーgdbserver host:portでは、正常に動作するスタンドアロン QEMU を指すことができる を指定できます。

シミュレートされた gdb セッションを可能にするために、Eclipse に直接接続するのではなく、接続するためのカスタム TCP サーバーを作成できますgdbserver。この TCP サーバーは、Eclipse からのすべてのトラフィックを に転送しgdbserver、このチャネルを介して gdb をリッスンしてメッセージを送信することもできます。

最終的な結果として、通常どおり Eclipse でデバッグしてブレークポイントを設定できるだけでなく、Web インターフェースやネイティブ OSX 端末などを介して任意の方法で gdb とやり取りすることもできます。

4

1 に答える 1

2

これを行う組み込みの方法はありません。それを実装するためのプロジェクトがありますが、それがどれほど活発であるかはわかりません。

一種のプロキシを持つというあなたの考えはうまくいくかもしれません。マルチクライアント プロジェクトで提案されたアプローチとそれほど大きな違いはないと思います。既に送信される可能性が高いデータのみに関心がある場合は、別の同様のアプローチとして、ティーをどこかに挿入し、関心のある返信だけを除外することもできます。

于 2016-08-07T16:28:15.813 に答える