gdbserverとのプログラム的な相互作用
-
20-08-2019 - |
質問
gdbserverプログラムは、プログラムのリモートデバッグを可能にします。通常、gdbのローカルコピーは、リモートgdbserverインスタンス、およびそのリモートgdbserverの下で実行されているプログラムと対話するために使用されます。
私の質問は: gdbリモートシリアルプロトコルのクライアント実装はありますか(RSP)gdb以外のプログラムがgdbserverプログラムと対話できるようにしますか?
このドキュメントでは、 RSPサーバーの実装について説明していますが、主に興味のあるクライアント側。この実装はクライアントとサーバーをサポートしますが、 Common Lispで実装されており、まだ成熟したライブラリではありません。
解決
GDBプロトコルのクライアントを認識していません。
なぜ欲しいですか?
単純なタスク(開始、停止、メモリアドレスの検査)の場合、非常に迅速にゼロから作成できます。
複雑なタスク(スタックの巻き戻し、変数の検査など)の場合、GDBの重要な部分を再実装する必要があります。そして、それはおそらく非常に正当な理由なしに試みられるべきではありません。
また、GDB / gdbserverプロトコルは常に進化していることに注意してください。新しいGDBが古いgdbserverを処理できるようにする規定がありますが、その逆も当てはまるかどうかはわかりません。
他のヒント
リモートgdbプロトコルは、gdbマニュアルに完全に文書化されています。 http://sourceware.org/gdb/current/onlinedocs/gdb_toc.html
実際の例としてgdbがあります。これは、シリアルプロトコルでgdbserverを制御するクライアントを作成するのに十分なはずです。 ;-)