`
北极的。鱼
  • 浏览: 150775 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

分析应用程序假死原因

 
阅读更多


转自:http://zhidao.baidu.com/question/10665665.html


从根本上说,程序无响应是因为这个程序在运行时向系统请求资源,但一直处在资源不足的状态下,久而久只,出现了饿死现象。
导致这个问题主要是该程序的进程优先级的原因,优先级太低,在多个程度进行资源调用时,该程序申请资源,但资源不足,请求未被批准,久而久之,就被饿死了。病毒也是一样,某一项程序申请调用系统资源,但资源被病毒长时间霸占,甚至剥夺其他刚刚得到释放的资源,造成可用资源很少,或是病毒强行修改进程列表中各进程的优先级,造成资源调用申请长时间不被批准。
建议进程查杀病毒操作,并对系统进行优化,若配置较早可适当考虑升级或更换平台,如果仍然出现极个别的程序无响应的情况,可考虑在进程管理器中手动调整该进程的优先级。

 

 

其他解释:

先说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x00000000“。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统档案之后。 

在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其它随机数字。 

首先建议: 

1、 检查系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。 

2、 更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统档案、修正系统参数。有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。 

3、 尽量使用最新正式版本的应用程序、Beta版、试用版都会有BUG。 

4、 删除然后重新创建 Winnt\System32\Wbem\Repository 文件夹中的文件:在桌面上右击我的电脑,然后单击管理。 在"服务和应用程序"下,单击服务,然后关闭并停止 Windows Management Instrumentation 服务。 删除 Winnt\System32\Wbem\Repository 文件夹中的所有文件。(在删除前请创建这些文件的备份副本。) 打开"服务和应用程序",单击服务,然后打开并启动 Windows Management Instrumentation 服务。当服务重新启动时,将基于以下注册表项中所提供的信息重新创建这些文件: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\Autorecover MOFs 

分享到:
评论

相关推荐

    Android Handler主线程和一般线程通信的应用分析

    解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。如果此时需要...

    PyQt5 界面显示无响应的实现

    界面假死分析 在编写QT的界面程序时,当我们调用QApplication.exec()时,我们就启动了QT的事件循环。在开始的时候,QT会发出一些事件来显示和绘制窗口部件。在这之后,事件循环就开始运行,不断地检查是不是...

    NMI Java Code Viewer V6.0a

    非常好用的java反编译工具,反编译结果基本保持了程序逻辑结构,可读性强,不会出现假死现象【相对与国产工具】,对于分析或学习java应用非常有帮助。

    Google Chrome 6.0.451.0 Dev 版(一个由Google公司开发的网页浏览器)

    借助Speed Tracer,您可以更好地了解在应用程序中的哪些地方消耗了时间,并可以解决JavaScript语法分析和执行、CSS式样以及更多方面的问题。  Resolution Test,它可以改变浏览器窗口大小,从而使网站开发者可以在...

    软件测试规范

    边值分析法 .......................................................................................................................................... 8 4.猜错法 ..........................................

    网络安全与密码学.pptx

    主动攻击: 主动攻击 中断(伪装) 伪造(拒绝服务) 修改 重放攻击 改变消息攻击 5/23/2020 13 密码学与网络安全 攻击类型 实际攻击: 应用层攻击:攻击者访问、修改和防止访问特定的应用程序的信息或该应用程序本身;...

    XueTr0.27 (比冰刃IceSword还强的软件)

    修正xueTr清除ppxx回调时程序假死Bug 7.新增禁止创建注册表键(值) 8.新增删除文件时候占坑功能 9.新增查看文件锁定情况功能 2009-02-16 0.20版本: 1.支持windows 7(由于win7还处于beta阶段,我也不知道它的...

    汪文君高并发编程实战视频资源全集

    │ 高并发编程第一阶段25讲、多Produce多Consume之间的通讯导致出现程序假死的原因分析.mp4 │ 高并发编程第一阶段26讲、多线程下的生产者消费者模型,以及详细介绍notifyAll方法.mp4 │ 高并发编程第一阶段27讲...

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第一阶段25讲、多Produce多Consume之间的通讯导致出现程序假死的原因分析.mp4 │ 高并发编程第一阶段26讲、多线程下的生产者消费者模型,以及详细介绍notifyAll方法.mp4 │ 高并发编程第一阶段27讲...

    基于stm32系统的投喂器控制系统设计+源代码+文档说明

    * 由于疫情的突发,许多人突发性的被隔离或者是由于其他原因回不了家,家里空荡荡的,回不了家对于家里面有爱宠的"同志们"来说可是一种痛苦,只能活生生的看着爱宠们靠吃猫砂甚至塑料袋来度过,有的还甚至被饿死。...

    精易模块[源码] V5.15

    5、改善“网页_访问”死循环代码,感谢易友[@67564226]反馈。 6、优化“文本_取随机数字”精简代码,提高执行效率,感谢易友[ds9660]反馈。 7、修正“普通填表->链接_点击”无法在本窗口中打开的BUG,感谢易友[@zhuan...

    成功助理5.0 破解补丁

    2、修正了任务树窗口,使用“↑↓”按钮上下移动任务时,出现假死的bug; 3、修正了在vista系统下任务树不稳定的bug; 4、修正了任务另存为“word”格式文件的bug; 5、增加了任务委派人导出csv功能; 6、其它几...

    51单片机C语言编程基础及实例

    接上电复位电路,以及手动复位电路,分析复位工作原理 接配置:EA(PIN31)。说明原因。 发光二极的控制:单片机 I/O 输出 将一发光二极管 LED 的正极(阳极)接 P1.1,LED 的负极(阴极)接地 GND。只要 P1.1 输出...

    单片机 串口、网口、蓝牙通讯调试助手V1.8

    (1)添加了串口高级监视功能,能够监视其他应用程序的串口通信。 (2)添加了8051单片机代码生成功能。(懒人的必备O(∩_∩)O哈哈~) ===================================================== 2011-01-15 (1)修正...

    单片机多功能助手

    (1)添加了串口高级监视功能,能够监视其他应用程序的串口通信。 (2)添加了8051单片机代码生成功能。(懒人的必备O(∩_∩)O哈哈~) ===================================================== 2011-01-15 (1)修正...

Global site tag (gtag.js) - Google Analytics