私はROSというフレームワークを使って、新しいロボット用のソフトウェアを書くつもりです。 ROSフレームワークの下では、各ソフトウェアコンポーネントは別々のプロセスとして実行されます。さらに、ROSはTCPメッセージ共有を介して一度に複数のマシンで動作するように設計されているため、セットアップには複数のマシンで複数のプロセスが必要になります。GDB Server - 複数のマシンから複数のプロセスをどのようにアタッチしますか?
今や、私はブレークポイントに達したときにすべてのプロセスを中断できるように、gdbサーバーを実行して各マシンのすべてのプロセスをアタッチできるようにします。
GDB用documentionを見る: https://sourceware.org/gdb/onlinedocs/gdb/Server.html
それはあなたがコマンド経由のgdbサーバに複数のプロセスを添付することができますことを詳しく説明します。ただし、上の
gdbserverを--attach COMM PID
マシンがgdbサーバーを実行している場合、他のマシン上で実行されているプロセスのpidを取得することはできません。異なるマシンから複数のプロセスを同じgdbサーバーにアタッチする方法は?それが不可能な場合は、複数のgdbサーバーを設定してお互いに話をして、他のサーバーを一時停止するなどの方法はどうでしょうか?
最近、GNU Cauldronでこのことについて話がありました。スライド:https://gcc.gnu.org/wiki/cauldron2017?action=AttachFile&do=view&target=GDB+%26+Multi-target.pdf;ビデオ:https://slideslive.com/38902683/the-gdb-bof-gdb-multitarget –