1. ホーム
  2. VS

VSでwntdll.pdbがロードされないという例外が発生する。

2022-02-20 23:08:24

これは問題のブラッシュアップ中にスローされたもので、この例外は今まで見たことがないので文書化しています。

数十行のコードを見てもエラーが出なかったので、ステップバイステップでデバッグすることにしたところ、main関数の最後で例外が発生することがわかりました。おそらく私のプログラミングの悪い癖で、mallocを解放するためにfreeを使っていなかったからだと思うので、最後にfreeを追加しようとしました。ステップ実行で、free関数の実行中に例外が投げられるようになったことがわかったので、そのポインタのすべての操作に戻って見て、ようやく問題を発見しました。

コード中のforループ中のiの制限が十分厳しくないため、一部のデータケースでt[i]に境界外アクセスが発生し、tはそのmallocアロケーションへのポインタとなります。

(この種の例外は、ネットで設定することで解決したのを見たことがあります。この手の問題には注意して、もっと頻繁にコードをチェックした方がいいと思います)