荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: georgehill (佐治·希尔), 信区: Microsoft
标  题: Windows是怎样死掉的——(三)一般性保护错的
发信站: BBS 荔园晨风站 (Sat Jan 15 13:06:51 2000), 转信

发信人: CHh5945 (痴), 信区: Windows9x_3x
标  题: Windows是怎样死掉的——(三)一般性保护错的
发信站: BBS 水木清华站 (Wed Jan 12 20:59:05 2000)

(三)一般性保护错的处理
  只要是使用过Windows 95或Windows 98的用户,我估计没有遇到过一般性保护错(
GPF)的人几乎没有。当一个程序试图访问其内存地址空间之外的内存时,就会引发这种
错误,每当发生这种错误,系统就会提示:程序执行了非法操作。这时我们该怎么办呢
?下面是针对不同程序的GPF而分别采取的处理办法。
1.基于MS-DOS程序中的GPF
  由于每个MS-DOS程序只在独自的虚拟机上运行,故基于MS-DOS的程序出现一般性保
护错后,受影响的仅仅是该MS-DOS程序。因此,当这类程序出现GPF后,用户只须在GPF
对话框中单击“关闭”按钮,就将终止该MS-DOS程序以及运行它的虚拟机而收回被该程
序调用的系统资源。
  点击GPF对话框中的“详细资料”按钮,系统将提供一些堆栈转储数据,这些堆栈转
储数据是在程序崩溃时存储在系统寄存器中的消息,该信息一般只对编写程序的人有用

2.16位Windows程序中的GPF
  由于基于Windows的所有16位程序享用相同的地址空间,故只要一个16位程序出现G
PF,则其他正在运行的16位Windows程序都将因此而终止。只有将出现GPF的16位程序清
除后,其他16位程序才能继续读线程中的消息和正常进行操作。
  由于所有16位的Windows程序共享相同的资源,因此即使将出现故障的16位程序关闭
,通常也不能把资源彻底返回操作系统,而这些不能回收的资源又可能造成另外的16位
Windows程序出现GPF。故当16位Windows程序出现GPF时,要彻底收回系统资源,唯一的
办法是关闭所有的16位Windows程序。
  当16位Windows程序出现故障时,Windows系统也将发出指示故障的程序的GPF对话框
,该对话框是基于Windows 3.1旧类型的对话框,由“关闭”按钮和“忽略”按钮所构成
。用户选择“关闭”按钮后,将看到Windows 95/98 GPF的对话框。
3.32位Windows程序中的GPF
  虽然所有的32位Windows程序都使用同一个系统虚拟机,但是它们都有单独的虚拟地
址空间,所以当32位Windows程序出现GPF故障时,不会对其他任何程序产生影响。
  要收回出现GPF故障的32位Windows程序占用的系统资源,用户只须在出现的“Wind
ows 95/98 GPF”对话框中单击“关闭”按钮,Windows就会关闭出错的程序并把其资源
返回操作系统。
4.设备驱动程序中的GPF
  设备驱动程序中也会出现GPF。由于设备驱动程序能直接访问硬件并作为基本操作系
统的一部分运行,所以当设备驱动程序出现GPF故障后,将会影响整个Windows系统的稳
定和继续正常运行。因此设备驱动程序出现了一般性保护错后,最好的解决办法就是重
新启动系统。

--
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.114.208.160]
--

     书山有路勤为径;
     学海无涯苦作舟!

         欢迎各位光临Linux版!
 我是来自大富翁的小美!^_^

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.115]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店