软件调试
文章平均质量分 76
JXES智能生态系统
And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.
还有最重要的是, 你要有勇气去听从你直觉和心灵的指示——它们在某种程度上知道你想要成为什么样子,所有其他的事情都是次要的。
Stay Hungry. Stay Foolish.
求知若饥,虚心若愚。
展开
-
使用Application Verifier (AppVerifier)检查资源泄漏
最近在论坛里看到很多人问怎样检查内存泄漏,对于Windows CE/Windows Mobile开发,微软已经为我们提供了很好的工具Application Verifier。AppVerifier是一个辅助开发工具,不用修改代码,可以检测出程序内存,句柄, GDI对象泄漏,并报告分配泄漏对象的调用栈,有过在大规模代码里查资源泄漏的兄弟应该知道这个调用栈的价值。在中文google里搜了下,没有发现讲这个工具使用的文章,我就写个简单的使用说明,让大家知道并利用好这个工具吧。在MSDN里有很多关于AppVerif原创 2011-03-21 16:31:00 · 1034 阅读 · 0 评论 -
WINCE data abort 内核调试错误分析
1、 出错信息:PC=c01cf8ec(gwes.dll+0x0004f8ec) RA=c01cf8e4(gwes.dll+0x0004f8e4) SP=d1e9fde0, BVA=00001002Gwes.map文件:…………………………………………………………………………………………………………………………………………………………………………………………………………0001:原创 2013-03-21 13:59:35 · 3167 阅读 · 0 评论 -
cached地址和uncached地址的区别
cached地址和uncached地址的区别是,对cached地址的访问是委托给CPU进行的,也就是说你的操作到底是提交给真正的外设或内存,还是转到CPU缓存,是由CPU决定的。CPU有一套缓存策略来决定什么时候从缓存中读取数据,什么时候同步缓存。对unchached地址的访问是告诉CPU忽略缓存,访问操作直接反映到外设或内存上。 对于IO设备一定要用uncached地址访问,是因为你的IO输出操原创 2012-06-06 15:10:08 · 7817 阅读 · 0 评论 -
线程Thread Sleep(0)的意义重大
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会 不会被唤醒?某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(原创 2011-12-16 16:54:34 · 3591 阅读 · 1 评论 -
远程调试C# WinForm程序
一、【计算机配置】0.系统需求本地:本地计算机包含所有的源代码,哈哈VS当然要安装上了啊远程:如图所示 1.操作步骤选择Tools|Permission|在组或用户名称中添加需要进行远程的计算机的名称注意:本地和远程的两个计算机必须使用相同的帐户进行登原创 2011-10-17 10:33:26 · 2283 阅读 · 0 评论 -
vs2005 调试
1,断点设置有技巧:<br />1)设置条件断点,比如i==10,变量改变时断点;<br />2)如何让断点在指定的命中次数或者大于某个次数时触发呢?方法是设定几个断点的HitCount,右键单击断点,在弹出菜单中选择Hit Count;<br />3)When Hit,这个选项可以让我们在命中断点后做一些事情,包括输出一些内容,或者调用宏,比如输出一个程序中变量的值;<br />4)利用断点的Filter功能,比如我希望断点只有被机器名为yizhu的机器访问才能触发;<br />具体参见:一篇介绍VS20转载 2011-05-08 21:35:00 · 1018 阅读 · 0 评论 -
浅谈软件测试流程
<br />【摘要】软件测试从哪里开始到哪里结束?中间要经过哪些环节以及各环节要注意哪些事项。本文就有关问题结合个人实际工作经验进行阐述,鉴于每个环节都可以做为一个专题来进行探讨,所以受篇幅和时间限制,本文对有关问题未做深入剖析,只做一个宏观上的介绍。<br />【关键词】测试流程、需求分析、测试用例、测试计划、缺陷管理<br /> <br />一、概述<br /> <br />一般而言,软件测试从项目确立时就开始了,前后要经过以下一些主要环节:<br />需求分析→测试计划→测试设计→测试环境搭建→测试执原创 2011-04-27 13:44:00 · 2412 阅读 · 0 评论 -
如何编写测试计划
<br />俗话说:凡事预则立。软件测试同样,在测试项目之初就要制定相应的测试计划。接下来谈下如何编写测试计划问题。<br /> <br />一.首先了解以下几个问题:<br /> <br />1.为什么要编写测试计划?<br />1)领导能够根据测试计划做宏观调空,进行相应资源配置等;<br />2)测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等;<br />3)便于相关人员了解测试人员的工作内容,进行有关配合工作<br />2.什么时间开始编写测试计划?<br />(测试需求分析原创 2011-04-27 13:48:00 · 1023 阅读 · 0 评论 -
解决CE6和CE5在Platform Builder的Connectivity Options上的冲突
<br />安装完CE6后,会发现Platform Builder for CE5的Connectivity Options不好用了,即使修改设置后点Apply也无法把新设置保存住<br />在完全卸载CE6和VS2005后,点PB5的Connectivity Options会弹出这个错误<br /><br /><br />即使把CE5和PB5完全卸载,然后再重装,改错误仍然存在。<br /><br />我在网上搜到了该问题的解决方法<br />http://www.eggheadcafe.com/soft原创 2011-04-15 10:43:00 · 921 阅读 · 0 评论 -
PB5.0 features/sysgen参数和ceconfig.h中宏定义的对应关系
<br />使用PB建立一个wince image之前先要建立一个workspace来控制除OEM BSP之外的所有的image的属性,包括的内容等等。这些内容主要是通过PB的catalog来管理的,通过PB的viewàcatalog打开的视窗,我们从全部的window ce的可选组件中选择我们需要的加入到workspace中,这样的话我们sysgen出来的image就具备了相应的功能。从catalog的视窗中,我们可以通过查询任意一个组件的属性来获得它唯一对应的一个sysgen_开头的变量。但是这些变量并转载 2011-04-11 09:41:00 · 918 阅读 · 0 评论 -
Application Verifier的使用
<br />1.打开Application Verifier,方法一:在PB菜单Tools->Application Verifier;方法二:打开CETK,连接设备,左键设备,菜单Tools->Application Verifier;<br />2.在Application Verifier窗口,点击"Add"按钮<br />3.选择要测试的程序<br />4.点击"Run"按钮或者直接运行要测试的程序<br />5.尽量使用要测试的程序<br />6.点击"Get Logs"按钮,从目标机子复制l原创 2011-04-08 17:14:00 · 6873 阅读 · 0 评论 -
NMAKE.EXE使用
<br />NMAKE.EXE是Microsoft 程序维护实用工具,它是一个基于说明文件中包含的命令生成项目的工具。<br /><br />命令语法如下:<br />NMAKE [option...] [macros...] [targets...] [@commandfile...]<br />说明:其中,options是NMAKE的选项,macros是在命令行中的宏定义,targets是NMAKE的目标文件列表,commandfile是包含命令行输入的文本文件(或响应文件)原创 2011-03-23 14:32:00 · 1327 阅读 · 0 评论 -
在VS2005 /VS2008下调试应用程序的两种途径
刚接触WINCE 平台相关的东西,先从简单的开始了解吧,同时,我了解了的都记录下来给后学者,让你们少些困惑。(如有讲的不对的地方,挥泪欢迎指正)VS调试APP可以通过Activesync和TCP/IP两种方法调试1. TCP/IP调试 1)首先,把网络搭建好,保证终端机PC与宿主机DEVICE在同一个域下,我这里以192.168.10.100,46为例。 2)Tool-->Options-->Device Tool-->Devices在右侧选好platform,点properties按钮进入下一原创 2011-03-25 12:09:00 · 3963 阅读 · 0 评论 -
浅谈wince驱动调试方法
以前,我调试驱动都是打包,下载,很郁闷,一个小小的DLL都要这么费神,对微软极为不满,现在发现驱动调试有一些诀窍,特来和大家分享,如果你有更好的方法,就来和大家分享吧。 之所以说“浅谈”,是因为我自己也搞得模模糊糊的,问过很多人,大家一致认为有三种调试方法:一、使用应用程序动态加载驱动——优点是不用下载打包NK,可以在正常情况下看到驱动的运行情况;缺点是只能调试流驱动。在这方面有个专家做的很好,发布了驱动调试助手http://www.cnblogs.com/we-hjb/archive/2009转载 2011-03-22 10:40:00 · 926 阅读 · 0 评论 -
Printed Exception strings - what do all those flags mean?
http://realchecko.blogspot.com/2007/06/printed-exception-string.htmlhttp://blogs.msdn.com/hopperx/archive/2005/06/29/433842.aspxPrinted Exception strings - what do all those flags mean?Data Abort: Thread=9352cc9c Proc=90876ea0 'shell32.exe'AKY=00000005 PC=原创 2011-03-22 11:28:00 · 813 阅读 · 0 评论 -
如何诊断Windows CE的应用程序崩溃
无论你是一个单纯的电脑用户还是一名高级软件工程师,都一定对程序崩溃不陌生。做为一名Windows CE应用程序开发者,你也一定遇到过下图这种场景:这个对话框告诉你,有一个叫installer.exe的程序在地址00019320处崩溃了。如果这个程序归你负责,那么你的问题就来了:怎么找出这个BUG?这篇文章我想谈谈我在这方面的一些经验。Windows CE的崩溃界面给出的信息十分的少,其中最有用的无疑是崩溃地址,如果你能从崩溃地址定位到源代码去,这个问题可以说就解决了一半。从地址定位到源代码的方法转载 2011-03-22 10:37:00 · 893 阅读 · 0 评论 -
宏__DATA__日期以YYYYMMDD格式显示
以下代码是从网络上看到,经修改后目前可以正常使用。#include <stdio.h> #define YEAR ((((__DATE__ [7] - '0') * 10 + (__DATE__ [8] - '0')) * 10 \+ (__DATE__ [9] - '0')) * 10 + (__DATE__ [10] - '0')) #define MON...原创 2017-06-08 22:04:05 · 4633 阅读 · 0 评论