ACCESS VIOLATION をつかまえてごにょごにょしたい(1)
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 のこと)
今日はここまで。