gdb emaacs

2387 ワード

参照
http://www.cnblogs.com/qlwy/archive/2012/06/04/2535297.html
http://blog.csdn.net/liigo/article/details/582231



[root@node11 ~]# cat gdb-sample.c
#include <stdio.h>

int nGlobalVar = 0;

int tempFunction(int a, int b)
{
  printf("tempFunction is called, a = %d, b = %d 
", a, b); return (a + b); } int main() { int n; n = 1; n++; n--; nGlobalVar += 100; nGlobalVar -= 12; printf("n = %d, nGlobalVar = %d
", n, nGlobalVar); n = tempFunction(1, 2); printf("n = %d", n); return 0; } [root@node11 ~]#
emaacs gdb-sample.c
コンパイル
m-x comple
Comple command:gcc-o gdb-sample-g gdb-sample.c
gdbモード
m-x gdb
Run gdb(like this):gdb-i=migdb-sample
gdbのマルチウィンドウ
M-x gdb-many-windows
bメール
もし乱用したら
M-x gdb-restore-windows
毎回見る変数の値
display n
gdb emacs_第1张图片
命令の意味用法
リストは最初の行からソースコード(デフォルト10行)を並べます.  l
  l 3(スタートライン)
break
ブレークポイントを設定します.二つは、「行番号」「関数名」「実行アドレス」などを使って、ブレークポイントの位置を指定できます.
関数名の前に「*」の記号を付けて、ブレークポイントを「コンパイラによって生成されたprologsコード」に設定します.もしアセンブリが分からないなら、この用法を無視してもいいです.
  b<行番号>
  b<関数名>
  b*<関数名>
  b*<コードアドレス>
runデバッグを開始する  r
continueは次のブレークポイントまたはプログラムが終了するまでデバッグされたプログラムを実行し続けます.  c
clearは特定の行のブレークポイントを削除します.  clear<行番号>
deleteはブレークポイントを削除し、番号は1から開始します.  d<番号>
nextラインはソースコードの行を実行します.この行のコードの関数呼び出しも一緒に行います.  n
step lineはソースコードの行を実行します.この行のコードに関数があれば、この関数に入ります.  s
untilは現在のループを終了します.  until
printは、各変数の値、配列の値、関数などのprint p(pは変数名)をチェックできます.
print$1($1は履歴変数です.今後は直接$1の値を参照できます.)
表示配列:p<配列名>
配列要素を表示します.p<*配列ポインタ>
配列int a[N]の特定値を表示します.
①p*a@10
②p(int[10]*10
whatisはある変数のタイプを表示できます.
infoは各種の情報を表示するために使用されます.例えば、info bはブレークポイント情報を表示します.
info rレジスタ情報
info localは現在の関数のローカル変数情報を表示します.
info progはデバッグプログラムの実行状態を表示します.
quit終了gdbデバッグq