定番フリー・デバッガGDBの 基礎知識

ビギナほど超重要! フリー・デバッガ入門
特設
第
個人向け低価格 JTAG デバッガと
ピタッ! LLDB まで
2章
ダウンロード・データあります
定番フリー・デバッガ GDB の
基礎知識
基礎知識 1…GDB の最低限の使い方
とマイコン開発でよく使うコマンド
ここでは,定番デバッガ・ソフトウェア GDB の最
JTAG
USB
パソ
コン
②OpenOCD
を使う場合
GDBサーバ
ポート番号:
3333
低限の使い方とコマンドを紹介します.
GDB が動いているマシン用のプログラムをデバッ
グする場合(セルフ開発)は,特に意識することなく
コマンドを使えます.マイコン用のプログラムを開発
するクロス開発で GDB を使うときには多少作法が必
表 1 マイコン開発でよく使う GDB コマンド
コマンド
OpenOCD
JTAG
インター
フェース・
アダプタ
実機
(マイコン)
①パソコン上でシミュ
レータを使う場合
GDB
①も②もターミナル・
ソフトで操作
内 容
内 容
現在の表示しているソース・ファイルと
file filename は別のソース・ファイル filename を選
択
選択したオブジェクト・ファイルをター
ゲットにロードする.ROM プログラムで
OpenOCD が 対 応 し て い る 場 合,
OpenOCD側でフラッシュへの書き込みも
行う
load
図 1 JTAG インターフェース・アダプタと OpenOCD を使えば
手軽に GDB で実機をデバッグできる
コマンド
村井 和夫
(a)ソース・ファイルの選択とロード
コマンド
内 容
break
ファイル名と関数名,行番号などで
ブレーク・ポイントの設定を行う
c(continue) 停止しているプログラムを続行する
clear / delete
ブレーク・ポイントの解除を行う
n(next)
disable / enable
ブレーク・ポイントの無効化,有効
化を行う
停止しているプログラムの次の 1 行を実行す
る.関数呼び出しを 1 行として,関数には入
らない
s(step)
disply
プログラムが停止した時に自動的に
表示する変数や式を指定する
停止しているプログラムの次の 1 行を実行す
る.関数の呼び出しで関数の中に入る
ctl-C
現在走行中のプログラムを強制ストップす
る.ブレーク・ポイントに止まらなった場
合などに使用
(b)ブレーク・ポイントの設定や解除
コマンド
引き数
設定したブレーク・ポイントを表示
する
info
break
info
info
registers レジスタを表示する
locals
ローカル変数を表示する
info
arg
関数の先頭で引き数を表示する(関数
の先頭にとまったとき)
info
stack
スタックを表示する
info
frame
現在の C 関数のフレーム構造を表示
する
(d)プログラムの内容を表示する
コマンド
コマンド
print
x
メモリ番地の表示を行う
(f)データを表示する
内 容
list
現在行のまわり 10 行分を表示する. 範囲指
定も可能
disassemble
メモリ上のプログラムの逆アセンブル表示を
行う
backtrace
関数の呼び出し元を全てトレースする
(e)プログラムを表示する
コマンド
内 容
quit
GDB を終了する
help
単独で,トップ・レベルのコマンドの詳細
を表 示する.help info とすることで,
個別のコマンドの詳細を示す.細かいパラ
メータは,この help コマンドで確認する
とよい
内 容
変数やポインタの表示を行う.$ をレジスタ名の先
頭につけることでレジスタ表示も可能
100
(c)プログラムの実行や停止
内 容
(g)そのほか
2015 年 3 月号