ある配列をdeleteする際にエラーが出る。一応、複数回deleteしても大丈夫なような仕組みを入れているので、どっかでHeap領域を越えてアクセスしている可能性が高いかもと思い、なんかツールが無いかと探してみた。
Windows SDK 8.1というのをインストールしてみた。これには、WinDbg.exeやGlobal Flags、Application Verifierというのが含まれている。このうち、Global FlagsとかApplication VerifierというのがHeapのチェックをしてくれるらしい。
Global Flagsを立ち上げて、Image Fileというタブで該当のアプリケーション名を入れて、TABキーを押して、いろいろとチェック項目を入れる。
いろいろやったが、何の問題も見つけられない。終了時だけエラーが出る。
その後、アプリだけ動かそうとして、Explorerからダブルクリックして立ち上げようとすると、
プログラムxxが開始できません 指定されたファイルが見つかりません
とエラーが出て、立ち上がらない。古いバージョンの同じ名前のアプリも同様。どうなっているのじゃと半分パニックになった。落ち着いてみると、恐らくアプリの名前でシステム的に何かしているのだろうと思い、使ったアプリ、Global FlagsとApplication Verifierでなんか登録解除の方法が無いかを調べたが全然見つからない。とほほ。
最終的にやっと見つけた方法は、Global FlagsのImage Fileタブで、登録と同じように、アプリ名を入れてTABを押すと、登録されているチェック項目がでてくるので、それらを外して再登録すると元通りになった。
いやぁ、焦った。
でも、最初の問題が解決してないんだよなあ。
0 件のコメント:
コメントを投稿