Windows C++程序中的访问冲突是否总是立即崩溃
Would an access violation in a Windows C++ program crash immediately always?
我一直明白,如果您在任何平台的C++程序(或其他任何程序(中执行访问违规,违规程序将立即崩溃。有人告诉我,在Windows中并不总是如此。是吗?还是会像我想象的那样总是立即崩溃?
我不知道
任何处理器的访问冲突会导致强制崩溃。
访问冲突始终是错误(而不是陷阱(。操作系统可以允许进程设置异常处理程序(从中断向量调用(,以允许更正错误。
不,如果是这样,对手对缓冲区溢出所能做的最糟糕的事情就是拒绝服务。
对于一个具体的例子,一个不正确的Windows版本是Windows 95,其内存模型被昵称为危险内存模型。 该平台上的所有 Win32 程序都获得相同的选择器,其中为 DOS、32 位程序、16 位程序以及内核和驱动程序保留内存空间区域,并且只有访问内存的下半部分(NULL 指针引用(才会实际使程序崩溃。
相关文章:
- 包含未定义行为的源代码使编译器崩溃是否合法?
- 是否有可能存在不会崩溃程序的内存问题
- 是否可以以编程方式创建迷你转储文件而不会崩溃?
- 如果构造函数从调用到 std::make_shared 崩溃,GDB 是否可以显示崩溃的详细信息
- Windows C++程序中的访问冲突是否总是立即崩溃
- 故障转储文件是否需要崩溃时正在运行的本地文件
- 是否可以在程序崩溃后执行代码?
- 是否有支持C++和C#混合应用程序的崩溃报告服务
- 对 NULL 值的按位操作是否会使C++中的代码崩溃
- 确定程序是否崩溃
- C++程序在使用 if 条件检查指针是否为 NULL 时崩溃
- 是否有任何清单可以避免在使用 OpenCV SVM 时崩溃
- 如果测试程序崩溃,Valgrind报告是否可信
- 正在检查程序是否崩溃
- 如果机器立即崩溃,那么fflush()在将数据保存到磁盘方面是否与fclose()一样好?
- 如何知道当程序在运行时崩溃时是否是内存错误"the program has stopped working"
- 一种检测进程是否崩溃(或停止)的简单方法
- 我的win32程序是否有办法告诉它启动的子进程已经崩溃(而不仅仅是退出)?
- c++程序在崩溃时是否自动释放内存?
- 用于定义一个数字是否为素数的函数会导致c++程序崩溃