4:50 PM 5/27/2010
内存泄露检测:
在第a次申请内存是中断
1 (w)mainCRTStartup打断点
2 watch窗口,{,,msvcr90d.dll}_crtBreakAlloc的值改为a
3 运行程序
退出程序时报告泄露
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
static int g_enableCrtMemCheck = _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
申请内存时记录文件和行号
#ifdef _DEBUG
# define New new(_NORMAL_BLOCK,__FILE__,__LINE__)
#else
# define New new
#endif
以后用New代替new
5:56 PM 4/29/2010
如果没有单元测试,头脑中虚拟一下吧,在虚拟的过程中检查你的代码
10:36 AM 3/15/2010
单元测试
单元测试可以提高测试效率:
把模块划分的够小的话,编译时间减少了,单元测试的速度就快了。
更安全的测试方法:
单元测试比我们一般的直接跑整个程序来做测试的有点是,安全,快捷,覆盖广,等
2009-6-13
大型程序中存在很多需要调整的状态变量,如果能够快速修改这些变量并看到修改后的效果
,将会大大节约时间。
目前的调试器都可以动态修改内存,所以尽量将数据用变量存储而不是用常量,对于调试是
很有帮助的。
如果有需要保存调试后的数据,那么仅靠调试器就很难办了。虽然有的调试器有dump数据的
功能,但是用起来还是有很多限制,比如接口难用,需要工具支持,不能定制……
由此看来,开发一个变量调试模块是很有必要的……
现在来分析一下我们需要什么:
动态查看、修改变量值
保存最后修改的变量值到文件,供以后加载或者分析
及时暂停被调试的对象的执行,开启调试变量窗口,调试完后及时恢复执行
模块要简单高效
有一些可以考虑的地方:
既然本模块可以加载变量,那么是否可以把加载任何数据的功能也集成进来,或者序列化?