2011年9月10日土曜日

TestRunnerEEでデバッグ中「Microsoft VC を終了します」と表示!?

TestRunnerEEを使ってデバッグしていると、VCが強制終了してしまう……。

原因を調べて対策を実施した。

現象

テストプログラムにブレークポイントを設定し、自動デストを実行すると、VisualStudioが強制終了する

エラー箇所の表示や、エラーコードの表示も一切無く、終了する。


ブレークポイントを張るとVCが再起動するため、デバッグにならない!!
調べる時間が無かったので、テストスイートで発生した障害は、製品環境で実行し、デバッグを行ったが非常に不便だった。



原因調査

エラーコードも表示されないため、手がかりが一切無い。

仕方なく、Google先生に該当しそうなキーワードで検索を掛けてみたが、有益な情報は得られなかった。

調べる内に、「VisualStudio SP1」が公開されているのを見つけた。
一縷の望みを託し、SP1を適用することにした。



SP1適用結果

結果=変化無し。 orz

「何が悪いのかなぁ~」
と、悩むことしばし。

ソフト構造は、下記の通り。


「VCが強制終了する」ということは、単純に考えて、メモリ破壊やアドレス不整合など、使っているライブラリの整合性が合ってないのか、コンパイルオプションの設定が合ってないのではないかと想像。

コンパイルオプションの問題かなぁ~……と思い、設定を色々いぢったが、成果なし。

で、ふと気が付いた。
「CppUnit.lib のコンパイルオプションが合ってないのでは?」



CppUnitのコンパイルオイオプションを修正

CppUnitと、TestRunnerEEのコンパイルオプションを比較。いくつかクサそうなオプションが異なっていた。

CppUnit側のコンパイルオプションを修正し、TestRunnerEEと同じ値に設定し、リビルドした所、問題解決した!!

同じ問題に遭遇した時のために、CppUnitコンパイル環境を下記にアップロードした。

■cppunit-1.12.1_VC2010_cppunit.zip



0 件のコメント:

コメントを投稿