我的OpenGL的程序会出现一种带有一定随机性的崩溃。提示发生 float deviced by zero 异常。异常代号 0xC000008E。TRACE显示的信息如下First-chance exception in solid2000.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.
Warning: no message line prompt for ID 0xE001.
First-chance exception in solid2000.exe (MAINFRAME.DLL): 0xC000008E: Float Divide by Zero.
First-chance exception in solid2000.exe (OPENGL32.DLL): 0xC000008E: Float Divide by Zero.
崩溃到的代码一般是这样的028D355C mov eax,dword ptr [ebp+0Ch] -> 调试器将当前运行点定位在这里
028D355F mov ecx,dword ptr [ebp+10h]
028D3562 fld qword ptr [eax]
028D3564 fsub qword ptr [ecx]
028D3566 fstp qword ptr [ebp-18h]但是这样的代码丝毫没有除法的影子。我猜测时前面的代码发生了错误,但是没有表现出来,一直到后面才由于某种原因表现了出来。所以,我想截获这样的异常。当然,我要很精确的截获他,要很精确的定位引发异常的位置。应该如何做呢?
Warning: no message line prompt for ID 0xE001.
First-chance exception in solid2000.exe (MAINFRAME.DLL): 0xC000008E: Float Divide by Zero.
First-chance exception in solid2000.exe (OPENGL32.DLL): 0xC000008E: Float Divide by Zero.
崩溃到的代码一般是这样的028D355C mov eax,dword ptr [ebp+0Ch] -> 调试器将当前运行点定位在这里
028D355F mov ecx,dword ptr [ebp+10h]
028D3562 fld qword ptr [eax]
028D3564 fsub qword ptr [ecx]
028D3566 fstp qword ptr [ebp-18h]但是这样的代码丝毫没有除法的影子。我猜测时前面的代码发生了错误,但是没有表现出来,一直到后面才由于某种原因表现了出来。所以,我想截获这样的异常。当然,我要很精确的截获他,要很精确的定位引发异常的位置。应该如何做呢?
解决方案 »
- CameraDS类//网络摄像机实时视频的思路是什么?
- 打开数据库函数问题
- sdi程序,使用CreateView(CRuntimeClass(CMyView)),创建动态视图的超难问题!
- 如何实现Visual Studio 2003中的Solution, Resource, Class View这样的tab页面?
- 请问怎么用sdk或DDk捕获网络数据包(通过网卡的数据包)请高手帮忙,急急急
- 各位高手快过来看看这个问题
- 觉得自己"年轻"就进来看看
- 一个很奇怪的问题,请微软专家回答
- 哥哥,姐姐!谁在做工业图像处理?
- 问一下,为什么CSDN的网叶总是引起我的IE错误。而且把IE进程就给毙了??
- 做过人工智能系统的人请进
- 关于窗口定位的问题
a = 1;
b = 0;
a = a/b;
Project Setting->C\C++
Category:C++ Language的Enable Exception Handling 选项啊
double a, b;
a = 1;
b = 0;
a = a/b;
}
__except(GetExceptionCode() == EXCEPTION_FLT_DIVIDE_BY_ZERO)
{
printf("EXCEPTION_FLT_DIVIDE_BY_ZERO");
}
确定后,看看CallStack以及上下相关内容,应该能看到大概在哪条语句出的异常