[发明专利]一种计算机程序调试方法和装置有效
申请号: | 201610004830.0 | 申请日: | 2016-01-04 |
公开(公告)号: | CN105446886B | 公开(公告)日: | 2019-01-29 |
发明(设计)人: | 张强;周玮;朱众微 | 申请(专利权)人: | 青岛海信移动通信技术股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 266071 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 可执行程序 调试 计算机程序 加载 链表 方法和装置 调试参数 记录 计算机程序设计 函数调用 解析 截获 | ||
本发明的实施例提供一种计算机程序调试方法和装置,涉及计算机程序设计领域,用于在不修改程序的情况下对程序进行调试。该方法包括:加载可执行程序和调试参数;通过Hook机制对加载可执行程序的加载函数调用进行截获,获取可执行程序的package_name;解析调试参数生成记录链表,记录链表包括至少一个hook_package;当确定可执行程序的package_name属于记录链表时,对可执行程序进行调试。本发明的实施例用于计算机程序的调试。
技术领域
本发明涉及计算机程序设计领域,尤其一种计算机程序调试方法和装置。
背景技术
随着Android系统市场占有率的增加,越来越多的开发者基于Android系统开发应用程序(英文全称:Application,简称:APP)。每款APP在开发完毕后,并不能立即上线,因为该APP在实际系统上使用时,可能会出现一些错误(英文名称:bug),比如在APP的某个用户界面(英文全称:User Interface,简称:UI)在用户点击时无法响应,跳转时跳转失败或者逻辑错误等。因此对于APP一般在开发完成后,需要先进行调试,当确保APP可以运行正常后才会正式发布。
已有技术中的一种调试方式为:断点和单步执行调试,具体的,在程序的某些位置设置断点,调试时程序运行至该位置就会停止,然后对程序一步一步往下执行,若程序中有bug,则可以直接找到bug的位置。但是通过断点和单步执行的调试方式对程序进行调试时,首先需要集成开发环境(英文全程:Integrated Development Environment,简称IDE)调试工具支持,而且必须配合计算机端的调试工具才能够进行;其次,断点和单步执行的调试对偶现问题很难进行调试。为了进一步调试程序中偶现问题,已有技术中提出的另一种调试方式为:加入日志(英文名称:log)调试,具体的,在编译程序时加入log,通过查看程序运行过程中生成的log查找程序中的bug。通过加入log试调虽然可以对程序中的偶现问题进行调试,但是在遇到偶现问题时常常存在log信息不足,需要重新加入log,重新编译程序版本进行异常的复现,而且很多情况下调试时没有程序的源码,无法重新编译程序版本。所以,如何在不修改程序的情况下对程序进行调试是本领域技术人员亟待解决的一个技术问题。
发明内容
本发明的实施例提供一种计算机程序调试方法和装置,用于在不修改程序的情况下对程序进行调试。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种计算机程序调试方法,包括:
加载可执行程序和调试参数;
通过Hook机制对加载所述可执行程序的加载函数调用进行截获,获取所述可执行程序的package_name;
解析调试参数生成记录链表,所述记录链表包括至少一个hook_package;
当确定所述可执行程序的package_name属于所述记录链表时,对所述可执行程序进行调试。
第二方面,提供一种计算机程序调试装置,其特征在于,包括:
加载单元,加载可执行程序和调试参数;
获取单元,通过Hook机制对加载所述可执行程序的加载函数调用进行截获,获取所述可执行程序的package_name;
处理单元,解析调试参数生成记录链表,所述记录链表包括至少一个hook_package;
调试单元,用于当确定所述可执行程序的package_name属于所述记录链表时,对所述可执行程序进行调试。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛海信移动通信技术股份有限公司,未经青岛海信移动通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610004830.0/2.html,转载请声明来源钻瓜专利网。