- 締切済み
印刷中に強制終了
VS2008 C++、Win7Pro 上記環境でソフトを開発しています。 あるプログラム(リリースモード)で印刷中に強制終了し、そのままデバッグ(VS Just-In-Timeデバッガ)すると SetViewportOrg内でthisポインタがNULLの状態で停止します。 発生頻度は100%ではなく、5%から30%程度といったところです。 停止するところは必ず上記SetViewportOrg内で、thisポインタがNULLとなっています。 デバッグモードではこの症状は発生しません。 プリンタは3機種試しましたが、いずれでも発生状況は変わりません。 何かアドバイスをいただけたら助かります。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
回答No.2
デバグモードとリリースモードで違いが出る、という場合、真っ先に疑う点は「変数の初期化」です。 例えば int flag; if(! flag) { 初期化(); } とある場合、デバグモードでは常にflag=0となり、初期化が実行されますが、リリースモードでは、flagの値は不定で、0のときもあればそうでないときもあります。 そのSetViewportOrgに値を設定している箇所を探し、それが実行される条件を調べ、その中に初期化しないで使っている変数が無いか、調べまてみましょう。 コンパイル時に、警告レベルを高く設定するのもよいです。
- TooManyBugs
- ベストアンサー率27% (1472/5321)
回答No.1
デバッグモード以外でデバッグをすること自体無理。 デバッグモードであればソースコードの通りの順序で実行されブレークポイントもソースコードの行単位になりますがリリースモードではそのような保証は有りません。