Windows下的应用程序在什么情况下会出现runtime error?

webber84 2005-06-22 10:57:40
一个基于MFC的应用程序,运行过程中会不定期地跳出一个对话框提示runtime error。大家知道一般来说程序中发生无效地址访问这类的情况程序都会弹出一个框提示非法操作,然后是xxx地址不能read等等。那么哪些情况下会出现runtime error的提示呢?出现这个错误的时候,drwatson没有记录任何日志,系统也没有生成dump文件。
...全文
125 点赞 收藏 11
写回复
11 条回复
qrlvls 2005年06月26日
很多种情况,runtime library 非法调用或异常
回复 点赞
newbiestar 2005年06月25日
要不然你看看内存是不是有问题了?
回复 点赞
oyljerry 2005年06月24日
主要是什么方面的代码,程序有一些什么操作
是否有内存,资源泄漏等
回复 点赞
aben456 2005年06月24日
杀过毒吗
会不会跟别的程序排斥
回复 点赞
webber84 2005年06月24日
to xing_xing_xing(未名):
你这段话是在哪里找到的,能否把原文全部帖上来?

to everyone:
我测试了一下,如果是无效地址访问,程序不会runtime error,而是弹出一个非法操作的对话框提示某个地址不能read等等,而且这种错误一般drwatsn能够抓到。至于调用约定的问题基本可以排除,因为该程序已经正常运行了大半年,只是最近频繁发生异常,所以怀疑与系统有关,但不知何种问题会导致runtime error。
回复 点赞
AntonlioX 2005年06月23日
up
回复 点赞
newbiestar 2005年06月23日
调用约定的问题应该还是出在stack上面,因为stdcall是被调函数清栈,而cdecl是调用者清栈,搞错了的话,就会有不该被清除的东西清除,然后就failed了……

其实这种error必然是指针引起的,自己无意访问了不该访问的地址(譬如访问0地址),或者stack overflow,造成了函数的运行栈里面保存的retaddr被篡改到了某个乱七八糟的地方都会有这种问题。
回复 点赞
aben456 2005年06月23日
自己碰到的可能:
1.指针越界
2.字符串操作越界(strlen, memcpy, strcat....)
回复 点赞
DentistryDoctor 2005年06月23日
还有可能是调用约定的问题...

考虑一下结合.map文件
回复 点赞
oyljerry 2005年06月23日
堆栈溢出,指针访问错误
回复 点赞
xing_xing_xing 2005年06月22日
Stack pointer corruption.
Overruns of local arrays.
Stack corruption.
Dependencies on uninitialized local variables.
Loss of data on an assignment to a shorter variable.

来自MSDN
回复 点赞
发动态
发帖子
进程/线程/DLL
创建于2007-09-28

6376

社区成员

4.9w+

社区内容

VC/MFC 进程/线程/DLL
社区公告
暂无公告