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

webber84 2005-06-22 10:57:40
一个基于MFC的应用程序,运行过程中会不定期地跳出一个对话框提示runtime error。大家知道一般来说程序中发生无效地址访问这类的情况程序都会弹出一个框提示非法操作,然后是xxx地址不能read等等。那么哪些情况下会出现runtime error的提示呢?出现这个错误的时候,drwatson没有记录任何日志,系统也没有生成dump文件。
...全文
217 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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

15,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧