f:id:clayfish:20080125215955p:image:right

windows で NULL アクセスすると発生する「あれ」。「あれ」を捕まえて色々やりたいなーと、ふと思いまして。

まずは、C 言語で NULL アクセスするプログラムを作ってみました。

intmain(int argc, char \*argv[]) { int \*p = 0; \*p = 1; return 0; }

実行結果は画像のとおりです。よく見ます。

まず最初に画像に表示されている情報を整理すると、

null_access.exe
NULL アクセスを発生させるために作ったプログラムの名前
0x00411398
この「あれ」が発生した際に実行していた命令のアドレス, いわゆる PC (Program Counter)
ハンドルされていない例外が発生しました
例外処理をなにも行なっていないので、こんな風に怒られちゃいました
0xC0000005
この「あれ」が発生した際の「例外コード」といわれるもの, 具体的には EXCEPTION_ACCESS_VIOLATION
0x00000000
アドレス 0x00000000 に何か書き込もうとしたようだ(*p = 1 のこと)

今日はここまで。