代码改变世界

利用压力测试来保证软件的质量(三) 窗口链混乱问题

2010-09-10 21:14 by 王克伟, 608 阅读, 0 推荐, 收藏, 编辑
摘要:窗口链混乱问题 简介:比如进程A莫名其妙的销毁了进程B的一个窗口,进程B就杯具了。   摸索的过程 2010.6.7/6.8/6.9 Bug2609: 1.我们看到这个异常发生在pimg.exe进程中,那么这个Application干嘛的? 图片与视频应用程序 dumpsource pimg.exe发现代码在:\private\apps\pimg 2.但是我们发现异常抛\private... 阅读全文

利用压力测试来保证软件的质量(八) 栈溢出问题

2010-09-10 21:12 by 王克伟, 357 阅读, 0 推荐, 收藏, 编辑
摘要:函数的递归调用不小心就会造成栈溢出,死循环的递归那是没话说了,CE上默认的线程栈大小为64K(?),在创建线程时可以指定大小,但是在CE 6.0之前,进程的内存限制为最大32M。   另外使用局部变量来存放一个较大的东西也是危险的,也很容易造成栈溢出,大内存应该使用堆(私有堆、公共堆)。 PS:如果你遭受较多的内存泄露,你应该更怀疑是堆出了问题,而不是栈。 阅读全文

利用压力测试来保证软件的质量(七) 堆错误问题

2010-09-10 21:12 by 王克伟, 584 阅读, 0 推荐, 收藏, 编辑
摘要:堆错误(Heap Corruption)是非常常见的错误,因为读或者写非法的堆地址造成错误,解决这些问题的关键在于操作系统内存检查机制的完善,遇到问题时借助内存检查工具能够较轻松搞定,单单靠人工去解决不现实,特别在遇到内存使用越界或者野指针等问题时。   尝试解决\DumpFile\Heap Corruption\20100702_MACHINEENROLLERLAUNCH.EXE 查看代码:... 阅读全文

利用压力测试来保证软件的质量(十) CPU Starvation问题

2010-09-10 21:11 by 王克伟, 653 阅读, 0 推荐, 收藏, 编辑
摘要:利用Windows CE Remote工具中的Kernel Tracker工具: 一些常识: 什么是进程和线程?为什么需要进程和线程?线程有哪些状态?(Runing/Blocked/Sleeping) CE的调度机制是什么? 线程/资源同步有哪些手段(Critical Section/Event/Mutex/Semaphore) 为什么会造成CPU Starvation? 阅读全文

利用压力测试来保证软件的质量(二) 基本原理和方法

2010-09-10 21:10 by 王克伟, 558 阅读, 0 推荐, 收藏, 编辑
摘要:CE Stress & Hopper的原理 UI压力测试工具需要比用户还了解用户的操作,能够捕捉到边缘操作问题(甚至用户都想不到的操作,比如在没有输入框的界面下狂点输入法。)   如何解决压力测试发现的问题 1.工具 CE里面我们有CeStress以及Hopper工具,Android里我们有Monkey Windows下我们的分析工具有:Windbg、Platform Builder以... 阅读全文

利用压力测试来保证软件的质量(六) 死锁问题

2010-09-10 21:10 by 王克伟, 347 阅读, 0 推荐, 收藏, 编辑
摘要:DeadLock的一个可怕后果就是UI Hang住了(界面没反应),你一般会看到这个进程是Shell32.exe。   现在遇到一个Theme相关的Dead Lock问题: \DumpFile\Dead Lock\20100704_DeadLock_poutlook.exe \DumpFile\Dead Lock\20100703_DEADLOCK_poutlook.exe \DumpFile... 阅读全文

利用压力测试来保证软件的质量(一) 概述

2010-09-10 21:08 by 王克伟, 396 阅读, 0 推荐, 收藏, 编辑
摘要:什么是压力测试? http://en.wikipedia.org/wiki/Stress_testing http://en.wikipedia.org/wiki/Stress_testing_(software) http://wiki.mbalib.com/wiki/%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95 http://www.opensourcete... 阅读全文

利用压力测试来保证软件的质量(五) 窗口消息问题

2010-09-10 21:07 by 王克伟, 422 阅读, 0 推荐, 收藏, 编辑
摘要:2010.6.28/6.29 今天遇到个问题: cprog模块没有处理好WM_CLOSE消息重入问题,造成double free。 Cause: The heap 0x002d8200 was double freed, because the object of CCameraDevice was deleted twice, caused by WM_CLOSE message process... 阅读全文

利用压力测试来保证软件的质量(九) 访问违例问题

2010-09-10 21:03 by 王克伟, 706 阅读, 0 推荐, 收藏, 编辑
摘要:这差不多是我们遇到的最最常见的问题了,访问违例(Access Violation)问题只是最直接的现象而已,并不是造成这些问题的Root Cause,为什么这么说呢,现在案发现场是程序使用一个对象的方法,但是这个对象所在的内存已经是0xCCCCCCCC了(比如你delete一个对象后,Heap Manager在free掉这块内存后填充上0xCCCCCCCC作为标记,下次它会Check这块标记为fr... 阅读全文

什么才是好的手持产品?

2010-06-14 12:01 by 王克伟, 4981 阅读, 6 推荐, 收藏, 编辑
摘要:在文章《我的HTC Hero(G3)用户体验》和《我的HTC Hero(G3)用户体验续》中我尝试亲身体验到底什么样的设备才是用户真正喜欢的(我体验了iPhone、HD2等其它智能手机,甚至包括山寨机... 阅读全文
上一页 1 2 3 4 5 6 7 ··· 10 下一页