先日インストールしたWinDBG。ヘルプファイルを順番に読んでいく。まぁ英語の勉強ですな。興味のないところは飛ばしてありますんで、ヘルプファイルと突き合わせてご覧ください。
いやぁ。こうやってみると、知らんコマンド、意味のわからんコマンドがまだまだいっぱいあるわ。
ENTER (直前のコマンドの繰り返し)
ENTER keyはあなたがタイプした直前のコマンドを繰り返します。
$<, $><, $$<, $$><, $>a< (スクリプトファイルの実行)
$<, $><, $$<, $$><, $>a<コマンドは、指定したスクリプトファイルの内容を読み込み、デバッガのコマンドの入力として使います。
? (コマンドヘルプ)
はてなマーク (?)記号は、すべてのコマンドとオペレータを表示します。
? (Expressionの評価)
はてなマーク (?) コマンドは、expressionの値の評価と表示をします。
?? (C++ Expressionの評価)
二つのはてなマーク (??) コマンドは、C++ Expressionルールに従った Expressionの値の評価と表示をします。
# (逆アセンブリパターンの検索)
シャープ記号 (#) コマンドは、逆アセンブリコードの中から特定のパターンを検索します。
|| (システム状態)
二つの 縦線 (||) コマンドは、指定したシステム または、あなたが現在デバッグしているすべてのシステムの状態 を表示します。
||s (現在のシステムのセット)
||s コマンドは現在のシステム番号のセットと表示をします。
| (プロセス状態)
パイプ (|) コマンドは、指定したプロセス または、あなたが現在デバッグしているすべてのプロセスの状態を表示します。
|s (カレントのプロセスのセット)
|s コマンドは、カレントのプロセス番号をセットと表示をします。
~ (スレッド状態)
チルダ (~)コマンドは、指定したスレッド またはカレントのプロセスのすべてのスレッドの状態を表示します。
~e (スレッド指定コマンド)
~eコマンドは、指定したスレッドまたはターゲットプロセスのすべてのスレッドに、ひとつ以上のコマンドを実行します。
~f (スレッドの凍結)
~f コマンドは、指定されたスレッドを凍結させ、それが解除されるまで待ちます。(?)
~u (スレッドの凍結解除)
~uコマンドは、指定したスレッドを凍結解除をします。(?)
~n (スレッドのサスペンド)
~nコマンドは、指定したスレッドの実行をサスペンドします。
~m (スレッドのレ再開)
~mコマンドは、指定したスレッドの実行をレ再開します。
~s (カレントスレッドのセット)
~sコマンドはカレントスレッドのナンバーをセット、または表示します。
~s (カレントプロセッサの変更)
~sコマンドは、マルチプロセッサシステムのとき、どのプロセッサをデバッグするのかをセットします。
a (アセンブル)
aコマンドは、命令ニーモニックをアセンブルし、結果命令コードをメモリに配置します。
ad (エイリアスの削除)
adコマンドは、エイリアスリストからエイリアスを削除します。
ah (アサーションハンドリング)
ahコマンドは、指定したアドレスのアサーションハンドリングの状態をコントロールします。
al (エイリアスのリスト)
alコマンドは、現在、定義されている、ユーザーが名前をつけたエイリアスのすべてのリストを表示します。
as, aS (エイリアスのリスト)
asとaSコマンドは新しいエイリアスの定義したり、既存のものの再定義をします。
ba (アクセスでのブレーク)
baコマンドは、データブレークポイントをセットします。このブレークポイントは指定したメモリがアクセスされた時にトリガされます。
bc (ブレークポイントのクリア)
bcコマンドは、システムから前にセットしたブレークポイントを永久に削除します。
bd (ブレークポイントの無効化)
bdコマンドは、以前にセットしたブレークポイントを無効化します。削除ではありません。
be (ブレークポイントの有効化)
beコマンドは、以前に無効化したひとつ以上のブレークポイントを復元します。
bl (ブレークポイントリスト)
blコマンドは、存在するブレークポイントの情報をリストで表示します。
bp, bu, bm (ブレークポイントのセット)
bp, bu, bmコマンドはひとつ以上のソフトウエアブレークポイントをセットします。位置、条件、違った種類のソフトウエアブレークポイントをセットするオプションなどを組み合わせることができます。
br (ブレークポイントの再番号振り)
brコマンドは、ひとつ以上のブレークポイントの再番号振りをします。
c (メモリの比較)
cコマンドは、2つのメモリエリアの値を比較します。
d, da, db, dc, dd, dD, df, dp, dq, du, dw, dW, dyb, dyd (メモリの表示)
d*コマンドは、指定された範囲のメモリの内容を表示します。
dda, ddp, ddu, dpa, dpp, dpu, dqa, dqp, dqu (参照メモリの表示)
dda, ddp, ddu, dpa, dpp, dpu, dqa, dqp, dquコマンドは、指定した位置のポインタ、ポインタの指し示す位置を表示して、さまざまなフォーマットでその場所のメモリを表示します。
dds, dps, dqs (ワードとシンボルの表示)
dds, dps, dqsコマンドは、指定された範囲のメモリの内容を表示する。このメモリはシンボルテーブルのアドレスのシリーズとみなされます。(?)関連するシンボルはとりあえず表示されます。
dg (セレクターの表示)
dgコマンドは、指定したセレクターのセグメントディスクリプターを表示します。
dl (リンクされたリストの表示)
dlコマンドはLIST_ENTRYやSINGLE_LIST_ENTRYのリンクされたリストを表示します。
ds, dS (文字列の表示)
dstとdSコマンドは、STRING, ANSI_STRING, UNICODE_STRING構造体を表示します。(これらのコマンドはnull区切り文字の文字列は表示しません。)
dt (型の表示)
dtコマンドは、ローカル変数、グローバル変数やデータタイプの情報を表示する。これは、単純データ型だけでなく、構造体や共用体も表示できます。
dv (ローカル変数の表示)
dvコマンドは、カレントスコープ内のローカル変数の名前と値を表示する。
e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza, ezu (値の代入)
e*コマンドは、指定した値をメモリに代入する。
f, fp (メモリで埋める)
fとfpコマンドは、繰り返しパターンで指定したメモリ範囲を埋める。
g (実行)
gコマンドは指定したプロセスやスレッドの実行を開始する。実行はプログラムの終了、ブレークポイントに当たる、または他のイベントがデバッガを止めるときに停止します。
gc (条件付きブレークポイントからの実行)
gcコマンドは、事前にブレークポイントにあたる(ステップ、トレースそまたは自由な実行)
すげーなつかしい香りがプンプンしました。
ここ数年まともにプログラム組んでませんが(今はただのSIer)、昔はこんなんでしたねーっ。
すげー、ノスタルジックです。
もう、VC++みたいなIDEしか使えませんけど..
SIerでも、WinDBGくらい使ってクラッシュダンプ読め、という、社会への警鐘の記事ということで(笑)
懐かしいって。。。
ばりばり現役ですよ、WinDBGは。最近はManagedや64Bitやらデバッグすることはいっぱいありますよ。