最近テニスをやった後、ちょこちょこと昼飯を食べることがある。
久々にコナズ珈琲に行ったら、やたらに赤ちゃん連れが多い。なにこれ、なんかのイベントか?と思うほど。
聞くと、結構多いですよと。まあ、若いママ達が息を抜ければ良いんだけど、そんなにしょっちゅう来てるママが多いとなると、カロリーも心配だけど、なんか、5百円玉を握りしめて、定食屋でサバ定かなんかを食べてるパパたちを思い浮かべて、勝手にすこし切なくなった。
2017年3月17日金曜日
2017年3月10日金曜日
Global Flags
C++でマルチプラットフォームのアプリケーションを開発していて、急にWindowsで終了時にエラーが出るようになった。
ある配列をdeleteする際にエラーが出る。一応、複数回deleteしても大丈夫なような仕組みを入れているので、どっかでHeap領域を越えてアクセスしている可能性が高いかもと思い、なんかツールが無いかと探してみた。
Windows SDK 8.1というのをインストールしてみた。これには、WinDbg.exeやGlobal Flags、Application Verifierというのが含まれている。このうち、Global FlagsとかApplication VerifierというのがHeapのチェックをしてくれるらしい。
Global Flagsを立ち上げて、Image Fileというタブで該当のアプリケーション名を入れて、TABキーを押して、いろいろとチェック項目を入れる。
いろいろやったが、何の問題も見つけられない。終了時だけエラーが出る。
その後、アプリだけ動かそうとして、Explorerからダブルクリックして立ち上げようとすると、
落ち着いてみると、恐らくアプリの名前でシステム的に何かしているのだろうと思い、使ったアプリ、Global FlagsとApplication Verifierでなんか登録解除の方法が無いかを調べたが全然見つからない。とほほ。
最終的にやっと見つけた方法は、Global FlagsのImage Fileタブで、登録と同じように、アプリ名を入れてTABを押すと、登録されているチェック項目がでてくるので、それらを外して再登録すると元通りになった。
いやぁ、焦った。
でも、最初の問題が解決してないんだよなあ。
ある配列を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を押すと、登録されているチェック項目がでてくるので、それらを外して再登録すると元通りになった。
いやぁ、焦った。
でも、最初の問題が解決してないんだよなあ。
登録:
投稿 (Atom)