作業中のマシン(win7 VS2010 Ultimate sp1)で実行する場合
int main()
{
unsigned i = 5;
i %= 0;
return 0;
}
また
int main()
{
int * ip = 0;
*ip = 4;
return 0;
}
未処理の例外がゼロで整数除算されます。ブレークボタンを押すと、問題を確認するために、コールスタックにはmsvcrt100dとntdllのみが含まれ、VisualStudiomlock.c
はそのLeaveCriticalSection( _locktable[locknum].lock );
行のファイル内でブレークします。
このコードを別のマシン(win7 VS2010 proff sp1)で実行すると、VSは問題のある行i %= 0;
odで正確にコードを壊し*ip = 4
ます。
この間違いは私のプロジェクトのどこかに隠されていて、別のマシンで実行するまで見つけることができませんでした。この動作を修正するにはどうすればよいですか?作業中のマシンで確認する必要があります。
Windows 7、Visual Studio 2010、およびVS-SP1のクリーンインストールがあります。私のプロジェクトは台無しにされるべきではありません。私はCMakeと、動作していないマシンで正常に動作している同じプロジェクトを使用して生成します。
アドバイスをいただければ幸いです。