2009-6-13,5/27/2010

来源:互联网 发布:淘宝客用手机可以做吗 编辑:程序博客网 时间:2024/06/05 16:57

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数据的
功能,但是用起来还是有很多限制,比如接口难用,需要工具支持,不能定制……

由此看来,开发一个变量调试模块是很有必要的……

现在来分析一下我们需要什么:
动态查看、修改变量值
保存最后修改的变量值到文件,供以后加载或者分析
及时暂停被调试的对象的执行,开启调试变量窗口,调试完后及时恢复执行
模块要简单高效

有一些可以考虑的地方:
既然本模块可以加载变量,那么是否可以把加载任何数据的功能也集成进来,或者序列化?

原创粉丝点击