建议
【如何定位内存泄漏】一般公司都会封装malloc、new函数,并分配一个模块号,每个内存地址头部都会携带id号,如下:
xxx_malloc(int nModleID,size_t size);这样通过地址空间头也可以找到分配的模块 。
- 分配次数
if(total_fee){LPADD_FEE pAddFee = new ADD_FEE;ZeroMemory(pAddFee, sizeof(ADD_FEE));pAddFee->nFee = total_fee;gdt.nTotalFee = total_fee;}结构体 ADD_FEE ,刚好是20字节typedef struct _tagADD_FEE{int nFee;int nReserved[4];}ADD_FEE, *LPADD_FEE;完全符合!! 问题解决总结这是一个低级错误导致的 。为了避免类视问题,引入代码静态检测
1)、cppcheck
2)、pclint
最后选了pclint 。配合jenkins,每天凌晨进行代码静态检查,并输出和上个版本的diff文件,下次就不会出现这么低级的问题 。
在大公司里面都会有非常多的检测工具、流程、方法论,都是前人经验的积累,虽然有点冗余繁琐,但却非常有效 。当你离开这个平台后,缺少了这些流程,一旦遇到疑难问题你才发现自己能用的手段真的很少 。
推荐阅读
- 硬盘分几个区最好?该如何合理分区?
- 地板用剩如何变废为宝?
- 教你如何把锡纸变成厨房好帮手
- 教你如何巧妙擦玻璃
- 欧莱雅|【海归求职网CareerGlobal】欧莱雅资深顾问带你了解如何求职高大上的美妆行业!
- 树如何能产盐?盐碱地里的木盐树
- 教你如何巧妙清洁纱窗
- 镜子日常清洁方法 如何正确保养你的镜子
- 如何选购优质沙发?挑选高品质沙发的3条法则
- 地板革要如何保养?
