システム・プログラム
電子・情報工学系
新城 靖
<yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/coins/syspro-2004()/gdb-cc.html
あるいは、次のページから手繰っていくこともできます。
yas_coins
http://www.is.tsukuba.ac.jp/~yas/index-j.html
使い方。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回。
キーボードからコマンドを打つ代わりにボタンが使える。
- 変数を選んで print や print*
- ブレーク・ポイントを設定したい行や関数をクリックして break 。
◆emacs ESC x gdb
Emacs (Mule) の中から gdb を呼ぶ。ソース・プログラム上でどこを実行して
いるかを追うことができる。
使い方。
- emacs を実行する。
- 「ESC x gdb リターン」と打つ。
- 「
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 で読める)で保存されている。
- Emacs を実行する。
- 「ESC x info リターン」と打つ。
- 「
Gdb: (gdb)
」の項目にカーソルを合わせ「リターン」を打つ。
◆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/coins/syspro-2004()/gdb-5.0-doc/
Last updated: 2004/04/10 20:06:46
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>