デバッガ(デバッグツール)の使い方 - KatLab-MiyazakiUniv/etrobocon2024 GitHub Wiki
デバッガの対象コード
GoogleTestのテストコード及び、GoogleTestによって呼び出されるコード。
Warning
現状、GoogleTestでは発生しないが、 シミュレータや実機でのみ発生する問題はデバッガの恩恵を受けにくい可能性が高い。
デバッガ使えると嬉しいこと
- セグフォの発生個所をコード上に表示してくれる
- セグフォ発生時の変数の値を確認することが出来る
- 任意の行で処理を一時停止し、変数の値等を確認することが出来る(ブレークポイント)
- e.t.c.
Note
上記のできることは、筆者が知っている機能であり、 本来使用できる機能のごく一部です。 他にも便利な機能をご存じでしたら是非教えてください。
前提条件
ここで紹介するデバッガは、以下の条件を満たす環境でのみ動作を確認している。
項目 | 条件 |
---|---|
OS | Ubuntu18.04/Ubuntu20.04(いずれもWSL) |
テキストエディタ | VSCode(with Remote - WSL) |
環境構築
1. パッケージのインストール
開発で使用するバージョンのWSLを開き、必要なパッケージをインストールする。
sudo apt update
sudo apt install gdb cmake
2. 拡張機能のインストール
Remote - WSL を用いてVSCodeを開いた上で、以下の拡張機能をインストールする。
3. デバッグターゲットの設定
Ctrl
+ Shift
+ P
キーを同時に押して CMake: Set Debug Target
を入力し Enter
を押し、[Unspecified] Unspecified (Let CMake guess [以下略])
を選択する。
デバッガの実行
1. GoogleTestの実行
build
ディレクトリが存在しない場合、GoogleTestを実行しbuild
ディレクトリを生成する必要がある(正確には実行ファイル?)。
./gtest_all.sh
2. デバッガを実行する
- VS Code の一番左の列、上から4つめの虫と再生マークアイコンをクリックする。
F5
キーを押してデバッグを行う(ブレークポイントを設定していない場合、ただ単にテストを行って終了してしまう)
Note
ソースコードやテストコードが変更された場合は、自動でビルドも行います(多分)。 心配な場合は、ソースコードを変更する毎に./gtest_all.sh
を実行すると安心です。
途中で処理を止めて変数等を確認したい場合(ブレークポイントの設定)
- 確認したいソースコードを開く
- 途中で処理を止めたい行の行番号にカーソルを合わせ、クリックする
- 行番号の左に赤い●が表示されたら設定完了(複数設定可能)
F5
キーを押してデバッグの開始- 画面左に変数等のデバッグ情報が表示される
- 再度
F5
キーを押すとブレークポイントに到達するまでプログラムが実行される
テストコード以外が原因と考えられるエラーが発生した場合
以下の作業のいずれか又はすべてを行った後、再度デバッガを実行すること
./gtest_all.sh
を実行するbuild
ディレクトリを削除した後、./gtest_all.sh
を実行する- VS Code を再起動する