基于Qt反射机制与DLL注入的程序动态调试方法及系统技术方案

技术编号:41871200 阅读:18 留言:0更新日期:2024-07-02 00:21
本发明专利技术提供了基于Qt反射机制与DLL注入的程序动态调试方法及系统,通过在目标程序中置入Qt反射机制的支持数据,通过windows的DLL注入技术在目标程序中注入带有日志打印函数的动态链接库DLL,来实现对目标程序错误的定位和问题的诊断;利用Qt的反射机制来获取目标程序的运行时信息,然后将这些信息与日志打印函数结合,通过DLL注入技术将包含日志打印功能的DLL加载到目标程序中,当目标程序运行时出现错误或问题时,注入的DLL会记录相关信息并输出到日志中,从而实现对错误和问题的定位和分析,不用修改目标程序的源代码、方便的功能扩展和定制、对目标程序出现的问题进行定位的效率高。

【技术实现步骤摘要】

本专利技术涉及程序动态调试,具体而言,涉及基于qt反射机制与dll注入的程序动态调试方法及系统。


技术介绍

1、当开发出一款qt应用程序,发行的release稳定版本在用户的电脑运行出现问题时,开发人员需要对出现的问题进行分析定位,找到程序中出现问题的部分,一般会使用程序内部打印的日志文件来完成。

2、当基于程序内部打印的日志文件来定位程序出现的问题所在时,若想要查看的信息或出现问题的部分在程序没有进行预埋,则难以精准定位程序出现的问题,且只能重新修改源代码、打包程序、发布release版本去重现此问题,再分析内部打印的日志文件对问题进行定位,整套流程执行下来较为耗时耗力,而且如果遇到一些比较难以复现的问题时,会加剧问题分析定位的成本。如果有在不修改源代码、不破坏用户运行环境的前提下,通过某种途径就能获取开发人员想要的信息的方案,将会使程序运行中的问题定位变得简单高效。

3、因此,我们有必要开发出一种基于qt反射机制与dll注入的程序动态调试方法及系统,不用修改程序的源代码,方便的功能扩展和定制,对程序问题定位和分析的效率较高。...

【技术保护点】

1.一种基于Qt反射机制与DLL注入的程序动态调试方法,其特征在于,包括:

2.根据权利要求1所述的一种基于Qt反射机制与DLL注入的程序动态调试方法,其特征在于,所述为所述目标程序添加Qt反射机制的支持数据,具体为:为所述目标程序实现一个继承自QApplication的子类,所述子类提供对函数进行反射机制修饰的Q_INVOKABLE修饰器,使所述函数能在外部通过反射机制进行调用。

3.根据权利要求2所述的一种基于Qt反射机制与DLL注入的程序动态调试方法,其特征在于,所述创建包含日志打印函数的动态链接库,具体包括:

4.根据权利要求3所述的一种基于Q...

【技术特征摘要】

1.一种基于qt反射机制与dll注入的程序动态调试方法,其特征在于,包括:

2.根据权利要求1所述的一种基于qt反射机制与dll注入的程序动态调试方法,其特征在于,所述为所述目标程序添加qt反射机制的支持数据,具体为:为所述目标程序实现一个继承自qapplication的子类,所述子类提供对函数进行反射机制修饰的q_invokable修饰器,使所述函数能在外部通过反射机制进行调用。

3.根据权利要求2所述的一种基于qt反射机制与dll注入的程序动态调试方法,其特征在于,所述创建包含日志打印函数的动态链接库,具体包括:

4.根据权利要求3所述的一种基于qt反射机制与dll注入的程序动态调试方法,其特征在于,所述记录日志前,需要先确定所述日志打印函数的功能,定义所述eventfilter()函数的输入参数和返回值。

5.根据权利要求1所述的一种基于qt反射机制与dll注入的...

【专利技术属性】
技术研发人员:吴名荣
申请(专利权)人:深圳牛学长科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1