gdb コマンドカード

システム・プログラム

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/classes/syspro-2003/gdb-cc.html
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/
http://www.is.tsukuba.ac.jp/~yas/index-j.html

■gdb

使い方。cc (gcc) に -g オプションを付けてコンパイルする。
% cc -g ファイル名.c -o progname実行形式 [←]
% gdb progname [←]
注意:cc で -o オプションを省略すると、progname としてa.out という名前 が使われる。

◆良く使うコマンド

run 引数1 引数2 ...
実行
list 行番号 {,行番号}
ソース・プログラムの表示
list 関数名
ソース・プログラムの表示
where
バックトレース
bt
バックトレース (where と同じ)
print 式 (p)
式の値の表示
print/形式 式
指定された形式で式の値の表示
x 番地
メモリの内容の表示
x/形式 番地
指定された形式でメモリの内容の表示
next
1行実行。手続き呼び出しがあっても次の行。
step
1行実行。ただし、関数呼び出しがあると、その関数の中に入る。
break 行番号 (b)
その行にブレーク・ポイントの設定
break 関数名 (b)
その関数にブレーク・ポイントの設定
cont (c)
実行再開。
info b
ブレーク・ポイントの表示
delete 番号
ブレーク・ポイントの解除
up
関数の呼び出し側に戻る
down
upの反対
call 関数(引数)
関数呼び出し。インタプリタ感覚。
リターン
前のコマンドの繰返し
help
使い方の表示
print, x では、「/」に続けて次のような形式が指定できる。

数 形式文字 サイズ

何回繰り返す回数(xのみ)
形式文字(x,print両方)
o(octal), x(hex), d(decimal), u(unsigned decimal), t(binary), f(float), a(address), i(instruction), c(char) s(string)
サイズ(xのみ)
b(byte), h(halfword,2バイト), w(word,4バイト), g(giant, 8バイト)
くわしくは、gdb を実行して help。

◆xxgdb

X Window のインタフェース。
% xxgdb progname & [←]
% []
xgdb ではなく、xxgdb。x が2回。

キーボードからコマンドを打つ代わりにボタンが使える。

◆emacs ESC x gdb

Emacs (Mule) の中から gdb を呼ぶ。ソース・プログラム上でどこを実行して いるかを追うことができる。 使い方。
  1. emacs を実行する。
  2. ESC x gdb リターン」と打つ。
  3. gdb progname リターン」と打つ。
gdb のウィンドウでよく使うキー
C-c C-n
next
C-c C-s
step
C-c C-l
ウィンドウを割って、ソースの表示
リターン
(前のコマンドの繰返し)

ソース・プログラムのウィンドウで使えるキー

C-x SPC (Control キーを押しながら x キーを押し、続けて単にスペース・キーを押す)
ブレーク・ポイントの設定。

◆gdb のマニュアル

info 形式(Emacs で読める)で保存されている。

◆HTML 形式のドキュメント

GDB 5.0 (学類のコンピュータで動いているものは5.1) に付属のドキュメントの日本語訳
オリジナル(gdb 4.18のオンライン版とアーカイブ)
http://www.asahi-net.or.jp/~wg5k-ickw/
gdb 4.17 のコピー(オンライン版)
http://www.coins.tsukuba.ac.jp/~yas/classes/syspro-2003/gdb-5.0-doc/

Last updated: 2003/04/14 04:01:16
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>