重箱の隅のデバッグ(2) – エラーの意味を探る

皆さんこんちは。Platform SDK チームの Chiharun です。 「重箱の隅のデバッグ」シリーズ第 2 回は API から返されたエラーコードの定義を調べる方法についてご紹介します。 プログラムコードの中で API を呼び出して、API の戻り値をチェックすることによって API が正常に完了したか確認することができます。 SDK や DDK/WDK を使ったことのある方は以下のようなヘッダファイルをソースファイルに直接的あるいは間接的にインクルードしてヘッダファイルで定義されているエラーコードの定義名を参照したことがあることでしょう。 winerror.h ntstatus.h プログラムを WinDbg でデバッグする場合にも API の返すエラーの値を調べることは良くあります。 例えばある値が API の戻り値として返された場合に、その値を上記のヘッダファイルに対して文字列検索で調べるといった場合があります。 私も以前はヘッダファイルを検索してエラー値の定義名を求めていました。 現在は別の方法でエラーに該当するヘッダファイル側の定義名を求めています。 理由としてはマイクロソフトの提供するすべての製品で利用されている API の戻り値を上記の 2 個のヘッダファイルで網羅していないため、検索してもヒットしない場合があるからです。 Err.exe – エラーコードを見つけるツール今回ご紹介するツールは err.exe と呼ばれるコンソールプログラムです。 マイクロソフトのダウンロードセンターから入手することができます。 Microsoft Exchange Server Error Code Look-uphttp://www.microsoft.com/download/en/details.aspx?id=985 ダウンロードセンターからダウンロードした自己解凍プログラム Err.EXE を実行すると、以下のファイルを展開することができます。 あとは Err.exe に Path を通せばコマンドコンソールから利用する準備が整います。…