環境
Ubuntu 22.04 with ROS2 humbleの環境を想定しています。
おそらくWindowsやMacの場合はgdbの設定などで差異があると思います。
多くの操作は参考文献[1]と共通なのでまずはそちらを参照すれば良いかと。
VSCode側の準備
ROS 拡張機能のインストール
ROSの拡張機能をインストールします。
launch.jsonの編集
参考文献[1]や[2]に倣ってデバッグの設定ファイルlaunch.jsonを編集します。
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "ROS: Attach",
"type": "ros",
"request": "attach"
}
]
}
めちゃくちゃ短いですが多分ROSの拡張機能がいろいろよろしくやってくれてるっぽいのでこれでも動きます。
プログラム側の準備
Debugビルドを行います。
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Debug --packages-select <your package>
--packages-select
は--packages-up-to
でも良いです。(たまに依存パッケージも一緒にビルドしないと行けなかったりするケースもあるはず)
実行しているプログラムへのAttach
プログラムを実行後、VSCodeの左のツールバーから再生ボタンをおしたり、コマンドパレットに Debug: Start Debuggingを打ち込んだりF5を推したりしてAttachを実行します。
c++かPythonか聞かれた後にAttachするプロセスを聞かれるのでデバッグしたいファイル名 or 実行ファイル名で検索して選択します。(この時、管理者権限での実行のためにsudoのパスワードを求められます。)
Attach成功!→ BreakPoint作るなり変数をWatchするなり何なりしてしまいましょう。