[发明专利]一种内核调试的方法和设备有效
申请号: | 201210178441.1 | 申请日: | 2012-06-01 |
公开(公告)号: | CN102722438A | 公开(公告)日: | 2012-10-10 |
发明(设计)人: | 刘水生;覃永靖;韩鹏 | 申请(专利权)人: | 北京神州绿盟信息安全科技股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
地址: | 100089 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内核 调试 方法 设备 | ||
技术领域
本发明涉及网络安全领域,尤其涉及一种内核调试的方法和设备。
背景技术
调试是软件开发和软件分析中一个必不可少的环节,相对于应用系统的开发和分析也同样如此。但是,Linux系统的开发者为了保证Linux内核代码的正确性,没有在Linux内核源代码中编入调试器,使得对Linux系统的内核进行调试一直是该领域一个相对棘手的问题。
为了解决Linux系统中内核代码的调试问题,出现了三种调试方法:
第一种调试方法:printk()打印信息方法。这种方法主要是通过在linux系统的内核代码中特定位置加入printk()函数,并通过printk()函数调用将相关的内核信息打印在屏幕上或者通过日志输出,通常这种方式结合Kprobes使用。
第二种调试方式:使用KGDB搭建的linux系统的内核调试环境。这种方法像调试普通的应用程序一样,在linux系统内核中执行设置断点、检查变量值、单步跟踪程序运行等操作。在使用KGDB调试linux系统内核时,需要两台机器,一台作为开发机,另一台作为目标机,两台机器之间通过串口或者以太网相连,将目标linux系统内核安装在虚拟机中,进行调试。
第三种调试方式:使用SkyEye搭建的linux系统的内核调试环境。这样方式下,SkyEye是一个开源软件项目,目标是在通用的Linux系统和Window系统平台上模拟常见的嵌入式计算机系统,实现一个指令级的硬件模拟平台,可模拟多种嵌入式开发板,支持多种CUP指令集,利用GUN的GDB项目,把GDB和ARM结合起来,进行linux系统的内核调试。
上述三种linux系统内核调试方法,各存在其缺陷:
第一种方式:通过printk()打印信息来调试Linux系统的内核。在需要对Linux系统内核源码进行改写时,在能够改写源码的编译环境下比较实用,但是对于已经编译完成且不能修改源码的Linux内核,则不能使用该方法通常这种方法被看作是一种代码错误跟踪技术,不能为源码级的Linux系统的内核进行调试。
第二种方式:通过KGDB内核调试方法来调试Linux系统的内核。需要在内核编译时编译一些配置,由于低版本Linux系统的内核中不具备这些配置信息,将不支持该调试方法;但是该方法在被使用时由于Linux系统内核配置信息较复杂,不能对内核进行全程调试;也不能应用于系统开始的初始化引导过程的调试。
第三种方式:通过SkyEye来调试Linux系统的内核。目前SkyEye主要支持基于ARM内核的系统,对于非ARM架构下编译的系统内核不能进行调试,存在使用的局限性。
综上所述,采用上述调试方法对Linux内核进行调试跟踪存在调试方式复杂和调试效率低的问题。
发明内容
本发明实施例提供了一种内核调试的方法和设备,用于解决现有技术中对Linux内核进行调试跟踪存在调试方式复杂和调试效率低的问题。
一种内核调试的方法,所述方法包括:
判断待调试的内核信息是否存在映射文件信息;
若存在,则确定该待调试的内核信息对应的映射文件信息,并对该映射文件信息中的指令信息进行调试;
否则,确定该待调试的内核信息的参考内核信息,并将参考内核信息中每一函数的调用地址作为该函数对应在待调试的内核信息中函数的调用地址,得到待调试的内核信息中各函数的调用地址;
将待调试的内核信息中各函数以及函数的调用地址作为待调试的内核信息的映射文件信息,并对该映射文件信息中的指令信息进行调试。
一种内核调试设备,所述设备包括:
判断模块,用于判断待调试的内核信息是否存在映射文件信息;
确定映射文件信息模块,用于在判断结果为存在映射文件信息时,确定该待调试的内核信息对应的映射文件信息;
确定调用地址模块,用于在判断结果为不存在映射文件信息时,确定该待调试的内核信息的参考内核信息,并将参考内核信息中每一函数的调用地址作为该函数对应在待调试的内核信息中函数的调用地址,得到待调试的内核信息中各函数的调用地址;
生成映射文件信息模块,用于将待调试的内核信息中各函数以及函数的调用地址作为待调试的内核信息的映射文件信息;
内核调试模块,用于对映射文件信息中的指令信息进行调试。
本发明有益效果如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神州绿盟信息安全科技股份有限公司,未经北京神州绿盟信息安全科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210178441.1/2.html,转载请声明来源钻瓜专利网。