2013年9月22日

头文件引起的bug

摘要: 理下关系,重现下问题。1)通用结构体struct stCom定义在common.h中,生成common.a。2)修改结构体定义。(修改结构体中某一个数据的长度)3)client.cpp 引用了修改之后的头文件common.h,并且编译静态链接common.a.结果,client.cpp和common.a中对结构体struct stCom的定义是不一致的,出现了数据错乱的问题。这个问题不常见,主要是因为版本控制做的不到位引起的。用gdb很容易看出来 ,结构体的内存布局在不同上下文中的区别。 阅读全文

posted @ 2013-09-22 11:11 netbar 阅读(173) 评论(0) 推荐(0) 编辑

工作失误总结

摘要: 1)判断用户当天是否领取礼包由于TTC的数据排序设置问题,未能将最新的领取记录取出,用户只要之前领取过礼包,该用户当天的领取礼包逻辑判断将始终为假。这样用户将无限制领取礼包。2)用户输入非法参数由于逻辑上一个gift_id对应一个item_id,该两个ID指向同一个物品。用gift_id进行合法性判断,而item_id进行物品操作。用户传入非对应的的gift_id和item_id进行物品操作.通过变换不同的gift_id,操作同一个item_id物品。3)版本控制问题代码刚被开发出来的时候是正确的,后来正确的逻辑代码被注释(判断礼包是否已经被激活)。 要命的的是想不起来自己什么时候进行的代码更 阅读全文

posted @ 2013-09-22 09:12 netbar 阅读(104) 评论(0) 推荐(0) 编辑

导航