真是苦死了,昨天突然死机. 最近写的.cpp文件变成了 00 00 00 00 ...
由于是新加的代码,又来不及写入SVN。 T ^ T.
不过之前写的代码总算基本完成,与之前相比要少了不少注释.
其实就是为socket加上个缓冲然后再简单封装一下常用操作而已。
接下来,今天要把游戏中与该网络模块相关旧的代码替换成新代码.
下面是新模式的BUG统计信息:
模块 : SLK_RWBuffer
错误描述 : 读缓冲大小有时错误
原因 : 读指针变量错误写成写指针
排除方法 : 测试代码+断点跟踪
模块 :SLK_RWBuffer
错误描述 :读线性缓冲大小有时错误
原因 :读指针变量错误写成写指针
排除方法 :测试代码+断点跟踪
模块 :SLK_RWBuffer
错误描述 :缓冲分段写数据错误
原因 :上一步写完数据后,写指针没有移动
排除方法 :测试代码+断点跟踪+内存比较
模块 :SLK_Socket
错误描述 :从socket中读取缓冲数据大小一直为零
原因 :CHECK_SOCKET_RESULT宏展少写括号,因此展开后变成
if( result = TestFun()<0) …,
正确应该是 if ((result = TestFun())
排除方法 :测试代码+猜测
模块 :SLK_Socket
错误描述 :随机出现内存越界错误,数据不正确时,一定出错,数据正确时不一定出错.
原因 :从socket中读缓冲时,某个时机忘记移动缓冲区的写指针,因比缓冲释放时由系统检测出错误.
排除方法 :测试代码+_heapchk函数定位
模块代码量:941
测试代码量: 401