<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[天堂的隔壁日志(公开版)]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/xylophone21</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; xylophone21]]></copyright><item><title><![CDATA[搬新家了]]></title><link>https://blog.csdn.net/xylophone21/article/details/1338958</link><guid>https://blog.csdn.net/xylophone21/article/details/1338958</guid><author>xylophone21</author><pubDate>Wed, 18 Oct 2006 01:35:00 +0800</pubDate><description><![CDATA[    本来从第一天尝试着做Blog起，就在搜一些可以对部分文章加密的系统。但找来找去，基本无果。搜到的不是一些小到给不了人任何信心的小网站，就是源代码下载。因为暂时还没有为了一个Blog整台服务期的打算和精力，也就一直在CSDN上用一种尽量第三方的口气，记录着工作中碰到的所谓通用性问题。工作相关的内容，则一直保留在本地的文件夹里。    不过近期随着工作岗位的变动，从毕业至今一直从事着的纯粹]]></description><category></category></item><item><title><![CDATA[看来，还真的需要一个完整测试用例]]></title><link>https://blog.csdn.net/xylophone21/article/details/1326552</link><guid>https://blog.csdn.net/xylophone21/article/details/1326552</guid><author>xylophone21</author><pubDate>Sun, 08 Oct 2006 22:59:00 +0800</pubDate><description><![CDATA[说起来当然是这样了，很流行的说法。一个完成的程序，跑一次，就覆盖了所有的至少是旧的功能，有问题马上就能发现。但做起来，恐怕真的不多。本来现在我维护的这个模块是存在这么一个东西的，不过接手的时候没人提及，用例本身也被条件编译分割的支离破碎，后期的修改也基本上改哪测哪 。慢慢的完整的测试用例也就被另外一个方便配置的工程取代了。其中的问题显而易见，每次修改后的测试都是不充分的，特别是一些表面上不受影]]></description><category></category></item><item><title><![CDATA[暖魅的assert]]></title><link>https://blog.csdn.net/xylophone21/article/details/1268746</link><guid>https://blog.csdn.net/xylophone21/article/details/1268746</guid><author>xylophone21</author><pubDate>Sat, 23 Sep 2006 13:26:00 +0800</pubDate><description><![CDATA[    对于assert，用起来一直感觉很暖没，说起来assert能检查程序中的逻辑错误，但在发行版本中，这个检查又是无效或者说无用的（指望让最终客户通过警告解决bug？）。同时，我们也很难100%保证发行版的程序中，没有逻辑错误。一般来说，我们又不允许程序在发行版中死掉，哪怕错误的运行结果也好。于是很多时候我们的代码不得不看起来成了这个怪异的样子：assert( sth_must_b]]></description><category></category></item><item><title><![CDATA[头文件不一致？]]></title><link>https://blog.csdn.net/xylophone21/article/details/1249844</link><guid>https://blog.csdn.net/xylophone21/article/details/1249844</guid><author>xylophone21</author><pubDate>Tue, 19 Sep 2006 23:04:00 +0800</pubDate><description><![CDATA[    下午处理一个新需求，得给一个已有的类加个WORD成员变量，一不小心竟写成了DWORD。本来也没什么，很容易就能发现的问题，想不到delete的时候，程序竟飞掉了，提示“Debug Error! DAMAGE: after Normal block (#xx) at 0xXXXXXXXX”，错误在MSDN上找不到。既然改就先把已知的问题改掉吧，DWORD改回WORD，一编译，问题竟解决了，再]]></description><category></category></item><item><title><![CDATA[麻烦的重复删除]]></title><link>https://blog.csdn.net/xylophone21/article/details/1240555</link><guid>https://blog.csdn.net/xylophone21/article/details/1240555</guid><author>xylophone21</author><pubDate>Mon, 18 Sep 2006 22:46:00 +0800</pubDate><description><![CDATA[     一个管理数据的模块，提供一组申请、释放、操作数据的接口，以句柄的方式唯一标识它们，实际上就是内存地址。句柄在模块间传来传去，果然这两天就因为重复删除死机了。     发现这种错误并不困难，和容易想到的办法就是在数据中加个字段存个标志，删除的时候把标志清掉就可以了。在VC中查查M$ new/delete能看到的代码，果然也是这么做的。问题在于内存的申请与释放，一般来说这样的模块使用的都]]></description><category></category></item><item><title><![CDATA[奇怪的优先级]]></title><link>https://blog.csdn.net/xylophone21/article/details/1176837</link><guid>https://blog.csdn.net/xylophone21/article/details/1176837</guid><author>xylophone21</author><pubDate>Mon, 04 Sep 2006 20:10:00 +0800</pubDate><description><![CDATA[本来一直都很注意回避优先级问题的，凡是如此都尽量多加括号，这次却翻了船：（“m & n == n” 不知道为什么总觉得它看起来实在太过于明显了，于是没加括号。很奇怪最初在Win32下调试的时候为什么是好的，但至少很多次在真实环境下的表现都没有一点问题。指导今天发现某个项目中，参数总是与传入的不一致。最终的结果也非常诡异，在Win32下，这个式子被解释为m & (n==n)，但在OS20下，]]></description><category></category></item><item><title><![CDATA[警惕NULL读操作]]></title><link>https://blog.csdn.net/xylophone21/article/details/1173739</link><guid>https://blog.csdn.net/xylophone21/article/details/1173739</guid><author>xylophone21</author><pubDate>Sun, 03 Sep 2006 22:28:00 +0800</pubDate><description><![CDATA[往NULL写东西，都非常小心了，malloc或者得到一个传入的指针以后，准备往里面写以前，肯定跟着一个assert或者一个if == NULL，甚至两者皆有。但对于空指针的读操作，你还有这么警惕么？是的，这种事情在发生时，IDE八层会弹出个大大的警告，但如果没有IDE呢？就象上一篇文章里描述的一样。上周就碰到了这么个郁闷的事情，一个传入的void*，还来不及处理却需要临时保存，（因为处理需要在]]></description><category></category></item><item><title><![CDATA[被进度冲昏了头脑]]></title><link>https://blog.csdn.net/xylophone21/article/details/1173608</link><guid>https://blog.csdn.net/xylophone21/article/details/1173608</guid><author>xylophone21</author><pubDate>Sun, 03 Sep 2006 22:01:00 +0800</pubDate><description><![CDATA[挨踢的人，哪有进度不紧张的？面对进度，不紧不慢的不多，被进度冲昏头脑的，我却经常碰到。 公司早就有了自己的平台无关的业务和界面实现封装，平台无关性不敢说做到了什么程度，但至少下成熟的平台上，Win32下和真实环境下几乎没有区别。前段时间就碰到这么一个项目组，号称只有大约xx天时间要出一个样机，于是拿了个以前所谓类似的项目，就开始在真实环境（一个非常成熟的平台方案）下改代码，说时间太紧，Wi]]></description><category></category></item><item><title><![CDATA[《嵌入式实时操作系统µC/OS-II》学习笔记(二) ]]></title><link>https://blog.csdn.net/xylophone21/article/details/1156647</link><guid>https://blog.csdn.net/xylophone21/article/details/1156647</guid><author>xylophone21</author><pubDate>Fri, 01 Sep 2006 22:47:00 +0800</pubDate><description><![CDATA[  第三章：内核结构临界段：也就是需要保证原子操作的代码段。由这里的说法，绝大多数或者说所有的（?）内核都是都是使用开关中断的方式来处理。在uC/OS-II中，使用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()两个定义在OS_CPU.H中的宏来开关中断。任务：提到一个概念，说任务销毁时，仅仅是内核不再理会这个任务了，即代码不再运行了，任务绝对不会返回什么。其实]]></description><category></category></item><item><title><![CDATA[遭遇内存泄露实例]]></title><link>https://blog.csdn.net/xylophone21/article/details/1146023</link><guid>https://blog.csdn.net/xylophone21/article/details/1146023</guid><author>xylophone21</author><pubDate>Wed, 30 Aug 2006 22:24:00 +0800</pubDate><description><![CDATA[前方传来消息，某个过程三十次后死机，看log，内存分配失败。很明显只有两种可能，内存泄露或者内存碎片。经确认此过程仅单个模块申请内存，所以内存碎片基本可以排除了，因为哪怕申请过程内存比较混乱，内存支离破碎，如果没有内存泄露，那最终也是会释放干净而不存在碎片的。打开内存申请释放函数中的统计信息，果然一个重复以后，内存占用增加了6K多。这个项目本身内存很吃紧，这将近200K的内存造成死机也就很正常]]></description><category></category></item><item><title><![CDATA[《嵌入式实时操作系统µC/OS-II》学习笔记(一)]]></title><link>https://blog.csdn.net/xylophone21/article/details/1128282</link><guid>https://blog.csdn.net/xylophone21/article/details/1128282</guid><author>xylophone21</author><pubDate>Sun, 27 Aug 2006 19:45:00 +0800</pubDate><description><![CDATA[引子这本书，早在两年前毕业，一位一起进公司的好友就买了，不过一直没看，翻了翻目录，似乎工作中根本用不到，抱着一种若不能学以致用，则学了也很难深入的想法，一直也就没看。直到在上期《程序员》上看到推荐，才忽然提起兴趣，两年嵌入式开发以后，再回过头来看此书，确实还说不好合适不合适，也许随着了解的深入，不保证某天就中断了。另外笔记中主要提到的是自己平时工作中感觉用的较少或者没有注意的地方，不涉及任何所]]></description><category></category></item><item><title><![CDATA[测试了一下csdn blog的“加密”功能]]></title><link>https://blog.csdn.net/xylophone21/article/details/1125474</link><guid>https://blog.csdn.net/xylophone21/article/details/1125474</guid><author>xylophone21</author><pubDate>Sun, 27 Aug 2006 01:58:00 +0800</pubDate><description><![CDATA[有些东西，想记录下来，但暂时还不想公布，于是尝试了下。 取消高级选项中的所有，放到隐藏的分类中，等等，几乎尝试了所有我能想到的办法。不过很遗憾，无论如何，总能通过搜索我的名字找到这些贴在，sigh，也不知道哪位高人有解决方案的。PS：为了尝试，在自己的Blog中灌了不少水，还请管理员不要介意。]]></description><category></category></item><item><title><![CDATA[makefile del:not found 问题]]></title><link>https://blog.csdn.net/xylophone21/article/details/1114669</link><guid>https://blog.csdn.net/xylophone21/article/details/1114669</guid><author>xylophone21</author><pubDate>Thu, 24 Aug 2006 23:09:00 +0800</pubDate><description><![CDATA[   周二的时候产品那边一股脑的下来了些新需求，一边给新人做培训（一讲就是三个钟头，果然受不了啊），一边修修改改。没动什么结构上的东西，一些小case罢了。调试的时候在VC下，OK以后编各平台的库，原本写好的makefile居然出错了。      分析下提示，居然是copy出错-_-，而且错误比较诡异，什么拷贝过程出错! 无意识的敲了个copy，显然是没有问题的。重新编译试试吧，mak]]></description><category></category></item></channel></rss>