BeagleBoneBlackで学ぶYoctoLinuxの基礎 (4) ~VSCodeを使ったリモートデバッグ~
あらまし
BeagleBoneBlackで学ぶYoctoLinuxの基礎 (3)にて、CMakeを使ったHelloWorldのビルドまで完了したため、次はVSCodeを利用したリモートデバッグの仕組みを作成する。
大まかには以下の手順となる。scp及びsshはターミナルエミュレータからも可能だが、すべてをVSCodeで完結させるため、tasks.json
を定義し、ビルド後のイメージの転送とgdbserverの起動をVSCode上から実施できるようにした。
大まかには以下の手順でデバッグが可能となる。
- scpを使ってa.outをBBBに転送
- sshを使って、BBB上でa.outのgdbserverを起動する
- VSCodeからgdbを使って接続する
振り返り
BeagleBoneBlackで学ぶYoctoLinuxの基礎 (2) より、BBBはipアドレス:192.168.100.19
を利用していることがわかっている。
tasks.json
の作成
.vscode.
内部に、以下の通りtasks.json
を作成した。
-
bbb-download
にてa.out
をBBBに転送 -
bbb - rungdb
にてBBB上でgdbserverを起動
scp
及び、ssh
実行時にパスワード認証が必要となるが、毎回入力する必要があり煩わしく感じたため、sshpass
を利用した。また、仮に、転送先: /home/user
及び、ポート番号1234
を設定した。
{
"version": "2.0.0",
"tasks": [
{
"label": "bbb - download",
"type": "shell",
"command": "sshpass -p user scp -r ${workspaceFolder}/build/a.out [email protected]:/home/user"
},
{
"label": "bbb - rungdb",
"type": "shell",
"command": "sshpass -p user ssh [email protected] \"gdbserver localhost:1234 /home/user/a.out\""
}
]
}
これにより、VSCodeのコマンドパレット(Ctrl-p)より、Tasks: Run Task
を実行することにより各タスクを呼び出すことが可能となる。また、呼び出し時にVSCodeのTerminalにその結果が出力される。
bbb - download
、bbb - rungdb
を順に実行すると、Terminal上にgdbserverが1234ポートをListenしていることが表示される。
launch.json
の作成
デバッグ環境を定義するために、.vscode
内に以下の通りlaunch.json
を作成した。
項目 | 説明 |
---|---|
name | お好みで |
program | デバッグ対象の実行ファイル |
miDebuggerServerAddress | 接続先のgdbserverのIPアドレスとポート番号 |
miDebuggerPath | sdkに含まれるgdb |
{
// 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": "(gdb) bbb - Remote",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/a.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"miDebuggerServerAddress": "192.168.100.19:1234",
"miDebuggerPath": "/opt/poky/3.1.6/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux/arm-poky-linux-gdb",
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
VSCode上でデバッグマークを選択すると、デバッグ環境の選択に(gdb)bbb - remote
が選択可能となり、RUN AND DEBUGの右側の緑矢印を選択すればデバッグが可能となる。
まとめ
- BBB上で動作するLinuxに対するリモートデバッグ環境を作成した
- すべてVSCode上で実行するため、taskを利用した
- Local変数、Callstack等も見れていい感じ
Author And Source
この問題について(BeagleBoneBlackで学ぶYoctoLinuxの基礎 (4) ~VSCodeを使ったリモートデバッグ~), 我々は、より多くの情報をここで見つけました https://qiita.com/Soramame11/items/3a54c0aa45d0869d9395著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .