Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
組み込み開発におけるデバッガ
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Shuntaro
September 05, 2025
Technology
18
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
組み込み開発におけるデバッガ
Astrocamp衛星開発ゼミ資料
Shuntaro
September 05, 2025
More Decks by Shuntaro
See All by Shuntaro
Phase transition in van der waals equation
shuntaro0318
1
24
Other Decks in Technology
See All in Technology
FinOps × AIエージェントで実現する コストインシデントの自動調査
oasis1994liveforever
0
100
Claude Code の Sandbox 機能を Anthropic Sandbox Runtime(srt) で試そう!/lets-play-anthropic-sandbox-runtime
tomoki10
1
520
10倍の生産性を実現するAI駆動並列エージェントのすべて
kumaiu
4
1.3k
AmazonRoute 53ではじめてのドメイン取得!HTTPS化までの道のりを整理してみた
usanchuu
3
130
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
140
失敗を資産に変えるClaude Code
shinyasaita
0
290
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
30
24k
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
700
自律型AIエージェントは何を破壊するのか
kojira
0
150
How Timee Delivers Day 1 Production Ready LLM Features
tomoyks
0
100
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
3
600
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
53
59k
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
380
The Limits of Empathy - UXLibs8
cassininazir
1
350
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
160
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
240
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
250
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
How STYLIGHT went responsive
nonsquared
100
6.2k
Practical Orchestrator
shlominoach
191
11k
How to make the Groovebox
asonas
2
2.2k
Transcript
組み込み開発におけるデバッガ GDB・JTAG・SWD・OpenOCD など Shuntaro Nakanishi 2025-09-03
Outline 1. デバッガとは . . . . . . .
. . . . . . . . . 2 1.1 デバッガとは . . . . . . . . . . . . 3 1.2 代表的なデバッガ . . . . . . . 4 1.3 デバッガの主な機能 . . . . 5 2. 使い方 (VSCode) . . . . . . . . . . . 6 2.1 設定 . . . . . . . . . . . . . . . . . . . . . 7 2.2 ブレイクポイント . . . . . . . 8 2.3 ステップ実行 . . . . . . . . . . . . 9 2.4 メモリ検査 . . . . . . . . . . . . 10 2.5 コールスタックの確認 . 11 3. CPU デバッグ . . . . . . . . . . . . . 12 3.1 全体像 . . . . . . . . . . . . . . . . . 13 3.2 これらの技術が可能にした こと . . . . . . . . . . . . . . . . . . . . 14 3.3 JTAG . . . . . . . . . . . . . . . . . . 15 3.4 SWD . . . . . . . . . . . . . . . . . . . 16 3.5 OpenOCD . . . . . . . . . . . . 17 Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 1 / 17
1. デバッガとは
1.1 デバッガとは デバッグ作業(バグの原因を探して取り除く作業)を支援するツールの こと。デバッガがなければ、printf などでログを大量に表示してメモリ や変数の値、関数の呼び出しを調べる必要がある。 Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03
3 / 17
1.2 代表的なデバッガ • GDB(GNU Debugger) GNU プロジェクトによって開発されたデバッガ。C/C++などの言語で広く使用され、コマ ンドラインから操作可能。GCC でコンパイルされたプログラムのデバッグによく用いられ る。
• LLDB(LLVM Debugger) LLVM プロジェクトによって開発されたデバッガ。Clang でコンパイルされたプログラムの デバッグに使用され、モダンなアーキテクチャを採用。 Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 4 / 17
1.3 デバッガの主な機能 • ブレイクポイントの設定 プログラムの特定の場所に一 時停止する地点を設定でき る。 • ステップ実行 プログラムを1行ずつ実行す
ることができる。 • メモリの確認 実行中の任意のタイミングで 特定の変数の値やメモリの内 容を確認できる。 • コールスタックの確認 プログラムが関数を呼び出し た履歴を確認できる。 Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 5 / 17
2. 使い方 (VSCode)
2.1 設定 .vscode/launch.json でデバッガの設定を行う。 C/C++の場合は VSCode の C/C++ 拡張機能が必要。 この拡張機能が
VSCode が使う DAP と、GDB が使う独自の通信プロ トコル(MI プロトコルなど)との間で、コマンドと情報の翻訳を行う デバッグアダプタの役割を担う。 Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 7 / 17
2.2 ブレイクポイント Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 8 / 17
2.3 ステップ実行 Continue Step Over Step Into Step Out Restart
Stop Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 9 / 17
2.4 メモリ検査 Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 10 / 17
2.5 コールスタックの確認 Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 11 / 17
3. CPU デバッグ
3.1 全体像 Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 13 / 17
3.2 これらの技術が可能にしたこと • JTAG (1980 年代): メーカー専用装置に依存せず、標準化されたオ ンチップデバッグ/境界スキャンを実現。 • GDB
(1988 年): ホスト PC とターゲット間でシリアル/TCP/IP を 用いたリモートデバッグを実現。 • OpenOCD (2005 年): 多様な USB-JTAG/SWD アダプタを共通化 し、GDB とターゲットの橋渡しを実現。 • SWD (2009 年): 2 線で JTAG 相当のデバッグを可能にし、低ピ ン・省配線を実現。 • CMSIS-DAP (2012 年): ARM 標準のデバッグプロトコルにより、 統一的な USB 経由デバッグを実現。 Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 14 / 17
3.3 JTAG JTAG は 4 本の信号線を用いる。 TCK(クロック) TDI(データ入力) TDO(データ出力) TMS(状態制御)
元々は基板検査の規格であった。 今では、各メーカーがプライベート命令やオ プションレジスタを使って、CPU デバッグ にも使用されている。 JTAG を拡張したものとして有名なものは、 ARM の CoreSight がある。 Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 15 / 17
3.4 SWD ARM 社が定めた JTAG と共存可能な 2 線 式のデバッグインタフェース。信号線が4つ 必要な
JTAG はピン数が少ないマイコンに とって、大きな問題となっており、SWD が 導入された。 信号線は以下の通り。 • SWDIO: データの送受信 • SWCLK: クロック Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 16 / 17
3.5 OpenOCD Open On-Chip Debugger の略で、JTAG を使ったデバッグを行うた めのオープンソースソフトウェア。 gdb server
および talnet server の機能を持ち、様々なデバックプ ローブ(ST-Link, J-Link, CMSIS-DAP)をサポートしている。 Shuntaro Nakanishi 組み込み開発におけるデバッガ 2025-09-03 17 / 17