「UNIX/デバッガ」の編集履歴(バックアップ)一覧に戻る
UNIX/デバッガ - (2011/02/23 (水) 20:31:38) のソース
&topicpath() #contents ---- *デバッガ gdbについて書く dbxに(あまり覚えていないが)簡単な設定変更で gdbと同じようなインタフェースに変更できる とりあえずのところgdbについてだけ書いておく **gdb GNUのデバッガ コンパイル時に-gオプションをつけた実行ファイルに対してデバッグできる $ gdb &italic(){実行ファイル} コアファイルの解析 $ gdb &italic(){実行ファイル} core ***実行オプション |BGCOLOR(#0AA):CENTER:オプション|BGCOLOR(#0AA):CENTER:動作| | -s &italic(){ファイル名} |&italic(){ファイル名}のファイルをシンボルテーブルとする| | -e &italic(){ファイル名} |&italic(){ファイル名}を実行ファイルとして使用| | -c &italic(){ファイル名} |&italic(){ファイル名}をコアファイルとして使用| | -x &italic(){ファイル名} |&italic(){ファイル名}をコマンドファイルとして実行&br()コマンドファイル:gdbコマンドをあらかじめ書いたファイル| | -d &italic(){ディレクトリ名}|ソースファイルを検索するパスに&italic(){ディレクトリ名}のディレクトリを追加| | -r |シンボルファイル内のシンボルテーブル全体を起動直後に読み込む&br()起動が遅くなるが毎度毎度呼ばない分動作は速くなる| ***主なコマンド |BGCOLOR(#0AA):CENTER:コマンド(短縮)|BGCOLOR(#0AA):CENTER:コマンド|BGCOLOR(#0AA):CENTER:動作| | r | run |実行 実行時の引数をオプションとしてつけられる&br()r 1 2 3 ・・・など| | q | quit |終了| | h | help |ヘルプ表示 コマンド(短縮でも可)指定でコマンドのヘルプ| | b &italic(){位置} | breakpoint |ブレークポイント設定 デフォルトは現在の実行位置をブレークポイントにする&br()行番号,関数名,ファイル名:行番号・・・などの指定ができる| | n | next |次の処理を実行(関数の中には入らない)| | s | step |次の処理を実行、関数の内部に入る| | c | continue |次のブレークポイントまで飛ぶ| | u | up |呼び出した上位の関数へ移動、移動できない場合は次の処理を実行| | d | down |その行で呼ばれる下位の関数へ移動| | p | print |出力 p/&italic(){format} でフォーマット指定可能&br()C言語と同じように型変換して出力することも可能&br()値を代入したり関数実行も可能| |~|BGCOLOR(#6EE):CENTER:pのオプション|BGCOLOR(#6EE):CENTER:内容| |~| p/a |アドレス| |~| p/c |文字| |~| p/d |符号付き10進数| |~| p/f |浮動小数点数| |~| p/o |8進数| |~| p/t |2進数| |~| p/u |符号なし10進数| |~| p/x |16進数| | x | hex |メモリの内容表示 printと同じオプションのほかに以下が使える| |~|BGCOLOR(#6EE):CENTER:pのオプション|BGCOLOR(#6EE):CENTER:内容| |~| x/s |文字列| |~| x/i |逆アセンブル| | what | whatis |変数の型を表示| | whe | where |現在実行している箇所へ到達するまでの関数の呼び出しを示す&br()bt(backtrace)やi sと同じ| | i | info |情報表示| |~|BGCOLOR(#6EE):CENTER:iのオプション|BGCOLOR(#6EE):CENTER:内容| |~| i b |ブレークポイント・ウォッチポイント・キャッチポイントの表示| |~| i s |関数スタックの表示| |~| i th |スレッドの表示| | j | jump |指定した関数・アドレス・行数へ飛んで実行継続| | l | list |リスト表示 デフォルトで直近、関数・行番号・ファイル指定もできる| | cond | condition |ブレークポイントに停止条件を設定&br()cond 2 iCnt==0 ←ブレークポイント2はiCnt=0のときだけ停止&br()cont 2 iCnt=0 ←ブレークポイント2で停止するとiCntに0が代入される(誤用?)| | wat | watch |指定した式が変更されるときに停止&br()w iCnt==0 ←iCnt=0のとき停止| | awat | awatch |指定した対象が読み書きアクセスされるときに停止| | rwat | watch |指定した対象が読まれたときに停止| | cat | catch |指定されたイベントが発生した時に停止| |~|BGCOLOR(#6EE):CENTER:catchのオプション|BGCOLOR(#6EE):CENTER:内容| |~| cat throw |C++例外の発生| |~| cat catch |C++例外のキャッチ| |~| cat exec |execの呼び出し(HP-UNIXのみ)| |~| cat fork |forkの呼び出し(HP-UNIXのみ)| |~| cat vfork |vforkの呼び出し(HP-UNIXのみ)| | tc | tcatch |1回だけ停止させるキャッチポイント| | thr | thread |指定スレッドへ移動| | at &italic(){プロセス番号}|attach|実行中のプロセスにアタッチする| | det | detach |デタッチする| ---- &link_toppage() &topicpath() ----