誓与BUG斗争到底

来源 :电脑爱好者 | 被引量 : 0次 | 上传用户:ashwgs
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  当软件出现问题时,你第一个会想到的是什么?自己操作不当、操作系统有故障……有没有想过是软件本身的设计缺陷(或者说BUG)造成的呢?你不用是程序员也能区分软件本身和系统究竟谁“犯了错”,如果是软件缺陷造成的故障,应该如何避开呢?
  
  收集线索,找出软件故障真凶
  
  1.缺胳膊少腿当然无法动弹
  现象:运行软件提示找不到DLL文件
  系统中包含很多运行库文件,有了它们软件才能正常运行。软件就像一张光盘,而运行库则是适合的光驱,有时系统中只有CD光驱(自带的运行库),那么要播放DVD光盘(需要其他运行库才能运行的软件)时自然就不行了。想让软件不再受到缺少运行库的干扰,可见本刊2005年第15期的《畅行无阻,给程序一张无敌通行证》。
  
  2.毫无征兆的错误
  现象:程序运行中突然发生错误退出
  大家平时遇到这种情况最多的可能就是QQ的无故退出了,有时聊了几句切换了一下输入法,或者视频聊天后关闭窗口,很容易就出现了QQ发生错误需要关闭的提示。这种情况大多是软件本身的毛病,有些软件错误退出时还挺“厚道”,询问你是否查看详细的错误报告,根据这个可以确定是系统目录中的文件还是软件本身出了问题。
  
  3.运行到这儿就出错
  现象:软件每次运行到特定位置就出错
  比起毫无征兆的错误,这种错误还是比较“人性化”的。在判断故障原因前应该先关闭杀毒软件的实时监控,然后在软件出错后,在“控制面板→管理工具”的系统事件查看器中找找错误日志,看看是不是哪个系统服务被禁用了而导致软件出错,因为很多软件的功能都是基于系统服务的。
  
  4.从软件的“遗书”里找线索
  现象:软件发生错误退出后留下错误日志
  有些软件发生错误后会在运行目录下生成错误日志(文件名很明显,如ERR.LOG),用“记事本”打开后可以找到发生错误的原因。
  
  谁留下了“破绽”
  


  1.Windows消息机制=听啥干啥
  传说中程序员都是一群极端严谨的人,怎么会平白无故在软件中留下这么多问题呢?很多人觉得不可思议。先来说说Windows的程序是怎么“跑”起来的吧!程序员在开发软件时所要做的其实也就是替程序设定在听到什么消息时做什么事,比如听到“按钮被按下”的消息时,做“弹出一个对话框”的动作。
  
  2.比大小比出“破绽”来
  软件的“破绽”大多是没有充分考虑可能听到的消息而造成的,比如以前曾经有个新手编写了一个比较两个数字大小的工具,界面很简单,有两个输入框一个按钮,在两个输入框内分别填入数字后点击按钮,就会弹出对话框告诉你哪个数字比较大,但当你尝试往输入框中填入非数字内容(比如一个英语单词)时,程序就发生错误强行退出了,提示“变量类型不匹配”。这是为什么呢?因为那个新手以为软件用户会按照使用说明在输入框中填写数字,而没有考虑有人会填写英语单词的情况,于是直接拿两个单词来比大小,就发生了错误。而一个完善的程序,可能仅仅在软件开头处多加了一个动作,先对输入框的内容进行检测,如果不是数字就不进行比较操作。
  
  惹不起我躲得起:直面4大最常见BUG
  
  软件缺陷不仅存在于那些制作低劣的软件中,几乎每个软件都存在或大或小的缺陷(据说Windows 2000刚发布时就发现了数千个BUG)。如果在不知情的情况下,你因为软件的BUG而把一大堆辛辛苦苦整理出来的数据弄丢了,会是何种心情呢?所以看清常用软件的缺陷对于避免造成损失是非常重要的,除此之外,看看各大知名软件出的“丑”也是件有意思的事。
  
  最常见BUG第1名:程序进入假死,界面呈白色。
  典型代表:MailWasher 危害程度:★★★★☆
  
  病情分析:在MailWasher中选择了一大堆垃圾邮件,点击“Process”(处理)键后界面就开始假死,有时甚至会出现假死整整一下午的情况,界面无响应呈白色。不得不承认MailWasher的编写者在功能上做得不错(能解决CFan邮箱中多达每天数千封的垃圾邮件),可他的编写者却犯了一个非常严重的错误——功能实现和界面显示使用单线程一起进行。当在MailWasher中按下“Process”按钮后,程序就开始删除已识别的垃圾邮件,在删除完成前,程序不接收用户的键鼠操作也不刷新软件界面(所以界面变白了),所以尽管你拼命地点击“Stop”按钮,可是程序根本不听“按钮被按下”的消息,所以自然也不会完成停止操作了。优秀的程序会将逻辑处理和界面显示放在两条并行的线程上进行,这样不耽误删除垃圾邮件同时也能够及时地响应用户的操作。
  BUG防弹衣:当然不能指望作者在短期内将软件的结构重新规划并推出多线程的升级版本,而且存在此缺陷的软件很多,如何避免这类假死程序拖慢整个系统?右击任务栏空白处选择“任务管理器”,在弹出窗口的“进程”选项卡中找到假死的进程(可以通过排序“CPU”占用来迅速定位),右击选择“设置优先级→低”(见图)。这样虽然不能解决程序自身暂时假死的问题,但系统中的其他进程不会被一起拖慢了。
  
  最常见BUG第2名:初次运行时不正常
  典型代表:QQ 2005
  危害程度:★★★☆☆
  
  病情分析:作为一款国内使用人数最多的即时通信工具,QQ在编写时犯的一些低级错误不可原谅。初次登录某个QQ号码时,一定会提示“密码不正确”,有经验的老鸟会尝试点击到服务器确认,而菜鸟则会觉得自己的密码被盗了放弃登录。QQ安装目录下会有每个在本机登录过的号码的目录(以号码命名),其中保存了用户密码的MD5值,用户下次登录时先会将其输入的密码计算出MD5值与本地文件中保存的MD5值进行比较,如果一致的话就直接连接服务器登录,反之则提示密码不正确并询问是否到服务器验证。不过QQ的编写者显然忽略了一个重要的问题:某个号码在第一次登录时,QQ安装目录中是不存在上一次登录过的密码的MD5值的,那么把正确密码的MD5值与空白(程序认为“空白”就是上一次登录计算出的MD5)进行比较的结果当然是“密码不正确”!除此之外,QQ还有一大堆类似的设计缺陷(比如新安装QQ后登录框中的文字“请在此输入您的QQ号码”在获得鼠标焦点后不自动清除等),强烈建议腾讯对程序员进行一次基础培训。
  其实要解决这个BUG很简单,腾讯要做的仅仅是在“登录”按钮的“点击”事件发生时判断一下是否存在上次登录密码的MD5记录,可是好几个Beta版本过去了,到了正式版仍有这个问题。
  BUG防弹衣:在提示“密码不正确”后选择到服务器端验证,经过一次登录后就不会再提示了。
  
  最常见BUG第3名:文件/设置没有及时保存
  典型代表:Maxthon
  危害程度:★★★★☆
  
  病情分析:经过测试发现,最新版的Maxthon已经修正了设置没有及时保存到硬盘文件的问题,这个问题仅存在于老版本中。具体表现为在Maxthon选项中更改了一些设置后,如果Maxthon未被正常关闭(包括关机前未手动关闭Maxthon)或发生错误退出,这些设置在下次打开Maxthon时就已经全丢失了。存在这个缺陷的软件也实在不少,软件的设置还是小事,如果是花费一晚上整理出来的文档……
  其实这种BUG的原因是软件在运行时将文件或设置的修改保存在内存中,而在听到“程序退出”消息时才进行“写入硬盘”的操作。不过程序发生错误或者被强行关闭时,还没来得及听到“程序退出”消息并作出反应时就已经被关闭了,那么内存中的信息也就无法保存到硬盘中了。
  BUG防弹衣:为了确保程序在发生错误异常关闭时数据不丢失,需要时常手动保存一下或使用软件提供的定时自动备份功能,比如EmEditor,选择菜单“Tools→Properties for Current Configuration”(工具→当前配置属性),在弹出窗口中选择“Backup”(备份)选项卡,勾选“Save Backups to Backup Folder”(将数据保存到备份文件夹),在下方的“Backup Folder”(备份文件夹)中设定用来保存备份的位置,点击“确定”(见图)。同时,如果是软件设置由于设计缺陷无法自动保存,那么可以在设置完成后手动关闭程序一次再重新打开。
  
  最常见BUG第4名:文件被强制锁定
  典型代表:QQ及其他IM软件
  危害程度:★★★☆☆
  
  病情分析:QQ 2005正式版已经修正了这个问题,不过由于这个故障现象在其他软件中也很常见,不得不说啊!在QQ中使用“发送文件”功能,其全过程其实就是“发送端QQ打开并读取要发送的文件→将读出的内容发送至接收端QQ→接收端QQ将收到的内容写入硬盘文件中”,在发送端QQ打开读取要发送的文件时,有一个选项“是否锁定该文件”,如果设置为“锁定”,则该程序在未关闭读取的文件前,其他程序是无法访问此文件的,而QQ正是使用“锁定”读取。正确的方式应该是在最后添加一个“关闭打开的文件”的动作,QQ发送完文件后该文件就能被其他程序正常读取了。
  BUG防弹衣:在遇到文件被某个程序长期强制锁定时,可以尝试关闭锁定的程序,如果找不到究竟是谁锁定了文件,可以从http://www.onlinedown.net/soft/24732.htm下载Unlocker并安装,安装时注意选择简体中文,安装完成后打开“资源管理器”,右击锁定的文件,在弹出菜单中选择“Unlocker”,解除锁定后就能正常使用该文件了(见图)。
其他文献
眼妆的重点,莫过于将眼睛放大再放大。但是,为什么你又涂又刷,结果却总是没有别人的眼睛大?
期刊
眼看春节将近,而手头的工作没有减少,反而增加不少。每年这时都要总结经验、计划未来一年的新工作,面对繁多的事情,如何进行合理的安排与规划是首先要解决的重要问题,下面的这些妙招也许能为你的年关工作处理带来帮助。    一、Excel倒计时 给你的任务提个醒    时间因为工作而宝贵,如果处于忙乱和混沌中,那么你将身心俱疲,满满的计划和安排却来不及实施,高效最终成为泡影。  一些朋友喜欢使用Excel来
期刊
美丽的圣诞节已经华丽地飘过,相信大家通过2005年第23期特别话题《这个圣诞夜,谁在为你歌唱》为心爱的MM送出了亲手打造的圣诞大餐,是否已见成效了呢。年底事情总是特别多,紧接着我们就将迎来中国人自己的传统节日—春节,既然是传统的节日,那么传统的互赠贺卡等祝福方式当然是必不可少的,可不要老想着MM哦,身边的亲朋好友,一个都不能少!  我相信在广大的读者群里,跟我一样生于七十、八十年代的人不在少数。大
期刊
过节不忘多联络  春节将至,不少朋友要离开学校或单位回家过年,如果随身没有朋友或者同事的联系方式,在家中需要沟通会很不方便,要是能够把联系人名单都打印成一个小册子,查找起来会非常方便!其实要把所有的联系人名单打印成册一点都不难哦,Outlook本身就有这样的功能。    1.所有的联系人资料交给Outlook管理    Outlook的打印联系人功能很实用,但是如果你的联系人并没有储存在Outlo
期刊
天气越来越热,无袖衫、吊带衫、露肩衫……所有能秀出肩膀的小衫通通上阵,优美的肩膀弧线、诱人的滑滑肌,再来一款立刻加分的时尚发型.你是让他心跳加速的美女没商量!
期刊
灿烂午后,在一间庭园茶坊与三五好友享受清凉冰沙,不仅惬意,连洒落阳光的粉嫩脸庞,气色也好极了!  跟好友喝下午茶,你不希望自己被比下去吧?要想气色好,又不想把妆画得太过浓重,搽上薄透兼具保养与润色效果的BB霜,刷上睫毛膏,点上能让你好气色又不着痕迹的液体腮红,最后刷上蜜粉,就能扫黯沉,且自然度一流,绝对没人怀疑你的粉太厚!
期刊
R&B起源于蓝调音乐,今日R&B已由昔日的街头黑人音乐,演变为攻陷英美欧亚各大销量排行榜的世界大热音乐。它带来的冲击不只局限于音乐。就连我们的穿着打扮、文化、口头禅、生活态度、行为举止,也因R&B音乐而有了某些改变。
期刊
很多正在使用笔记本的读者朋友都在抱怨笔记本电脑的电池无法支持较长时间,其实很多时候这是使用的问题,有很多种方法可以大幅度压缩笔记本电脑的工作功耗,从而让笔记本电脑的电池工作得更加持久。    1  恰当使用电源管理软件  如果你的笔记本电脑带有自己配套的电源管理工具,那么你应该立即安装。通常这些程序可以让你定制详细的电源管理设置项,你可以根据工作方式设定电源管理,使之支持最大的功能应用和电池耗电比
期刊
如果你符合以下一点或很多点,那么你应该把这篇攻略收藏起来并在此之前好好读一遍:  ◎你热爱系统优化,讨厌需要长期驻留内存的美化软件。  ◎你讨厌一成不变的Windows XP界面,希望改变风格。  ◎担心修改系统文件会造成系统崩溃,系统美化就要简单才行。  ◎自己对系统美化不感兴趣,可是MM抱怨你的系统太难看……  Windows XP的主题功能已经使它的界面比以往任何一款Windows都漂亮了,
期刊
延续春季的丰富多彩,今夏注定是一个绚烂的季节——雪纺、艳色、花边的流行,让女生们又可以堂而皇之地尽展柔媚。对于走在时尚尖端的明星来说,夏天的流行元素在她们身上体现得淋漓尽致,特别是非典礼活动的日常着装,更是值得借鉴。
期刊