弱智bug又两个
第一个bug:
struct msg_header {
int a;
int b;
int c;
};
这个只是消息头,消息内容在内存里排放在 struct msg_header 的后面,现在我要把消息内容部分(不包括头部)拷贝到string里:
struct msg_header *msg;
….
//拿到msg
….
string res;
res.assign( (char*)(msg+sizeof(struct msg_header)), len);
这样写是错的,括号嵌括号而且“+”写得不规范,靠得太紧,让自己都看晕了,正确的写法应该是:
res.assign( (char*)msg + sizeof(struct msg_header), len);
第二个bug:
没什么代码可列举,就是c++类的成员变量(int型)未在构造函数时初始化,在有些情况下可能默认成员变量的值就是0,在另一些情况下可就不一定了。正因为时有时无,所以最难发现。
都是简单bug,没有什么技术含量,但是一旦犯了,排错又耗力又耗时,遂贴之以为警示。
相关文章
- [kernel] exit_mmap BUG_ON() - 06 06, 2012
- fedora 9 小集 - 01 05, 2009
- 多线程调试 - 12 17, 2008
留言: