发明名称 一种航管训练系统开发中Qt程序内存使用静态检查方法
摘要 本发明公开了一种航管训练系统开发中Qt程序内存使用静态检查方法。在航管训练系统中运行一个Qt程序内存使用的静态检查程序,运行时将被检查的代码所在的目录作为运行参数。检测在5个模块中进行:遍历工程目录和子目录下的所有.cpp和.h文件,全路径保存为string类型存放到cpp_file中;按行读取文件每行信息,解析new和delete语句,得到Qt控件对象的创建信息和所有对象的删除信息;解析得到的Qt对象的创建信息存放在newOBJMap中,删除信息存放在deleteOBJMap中;遍历newOBJMap中的每个元素,在deleteOBJMap中查找对应的元素,存在对应元素将信息合并存放QtObjectMap中,检测结果输出到日志文件或控制台。有效解决了航管训练系统因Qt特殊性带来的内存泄露问题,大幅提高系统安全性、可靠性和实用性。
申请公布号 CN104461890A 申请公布日期 2015.03.25
申请号 CN201410768041.5 申请日期 2014.12.12
申请人 四川川大智胜软件股份有限公司 发明人 胡术;王煜清;唐麒麟
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 成都睿道专利代理事务所(普通合伙) 51217 代理人 潘育敏
主权项 一种航管训练系统开发中Qt程序内存使用的静态检查方法,其特征在于:在航管训练系统中运行一个QT程序内存使用静态的检查程序,该程序运行时将被检查的代码所在的目录作为运行参数,该目录可以含有子目录,得到检测结果后,将监测结果输出到日志文件或控制台;本方法专门针对Qt程序中两种Qt专属的两种内存泄露情况提供检查能力:Qt控件对象没有父控件,在堆中new了这个对象;Qt控件对象有父控件;检测在如下5个模块中进行:1)、遍历工程目录和子目录下的所有后缀名为.cpp和.h文件,把文件全路径保存为string类型,再存放到vector类型的cpp_file中;2)、遍历cpp_file中的每个文件,按行读取文件每行信息,解析new和delete语句,得到Qt控件对象的创建信息和所有对象的删除信息;3)、解析得到的Qt对象的创建信息存放在newOBJMap中,所有对象的删除信息存放在deleteOBJMap中;4)、遍历newOBJMap中的每个元素,在deleteOBJMap中查找对应的元素,如果存在对应元素,则将信息合并,存放在QtObjectMap中;5)、遍历QtObjectMap中每个元素,得到检测结果,输出到日志文件或控制台。
地址 610045 四川省成都市武侯区武科东一路七号