[发明专利]一种网络系统的调试方法在审
| 申请号: | 201310420124.0 | 申请日: | 2013-09-13 |
| 公开(公告)号: | CN103516561A | 公开(公告)日: | 2014-01-15 |
| 发明(设计)人: | 李鹏 | 申请(专利权)人: | 汉柏科技有限公司 |
| 主分类号: | H04L12/26 | 分类号: | H04L12/26 |
| 代理公司: | 北京天奇智新知识产权代理有限公司 11340 | 代理人: | 陆军 |
| 地址: | 300384 天津市西青*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 网络 系统 调试 方法 | ||
技术领域
本发明属于网络设备的调试领域,特别涉及一种通过动态插入函数的方式对网络系统进行调试的方法。
背景技术
当今是互联网快速发展的时代,各种各样的网络产品层出不穷,用户对网络产品的需求也逐渐增多,各个厂商也不断的给用户更加丰富的功能和体验,成为网络设备上网络通信过程中必不可少的环节。随着近些年的快速发展,网络设备也越来越多,越来越复杂,交换机、路由器产品也仅仅是这些网络产品中一小部分,网络的部署也越来越复杂,从单机设备部署,框架式设备部署,到现在发展为数据中心、云部署。由于设备功能、网络部署都变得越来越多,越来越复杂,因此一种良好的调试手段就显得尤为重要。在产品发布之前的开发阶段通常会有各种各样的调试手段,但是在产品发布后,通常的调试手段都比较少,难以处理较复杂的场景。
现有技术通常是在代码中添加大量打印或者日志信息,当网络设备出现问题时通过后台查看日志信息,或者用户终端的打印信息来分析可能出现的问题。但是这就需要提前将打印信息做好,如果打印信息没有添加到发布的版本中,那么就无法获取相应信息。
同时,当设备出现问题时,仅仅看打印信息是不够的,研发人员通常需要一种方法获知某个代码流程是否走到了,或者更细微的某个函数是否得到了执行,但是遗憾的是,当前要不没有方法要不还要借助第三方工具。当发布的网络设备出现问题时,研发人员通常无法通过跟踪源代码函数来确定某个函数是否得到执行。
发明内容
本发明鉴于上述问题而提出,其目的是提供一种网络系统的调试方法,实现动态打印,只要预先做好一条或者多条打印信息,当网络设备出现问题时,通过一个动态输入命令来使原本没有打印信息的函数自动打印预设的信息,以便开发人员调试定位信息。
为达到上述目的,本发明的技术方案是:一种网络系统的调试方法,该方法包括:
通过CLI或者WEB下发要调试的函数名称;
获取所述被调试函数的名称和执行地址;
根据所述被调试函数的名称和执行地址,用预制的跳转打印函数修改被调试函数的栈,使得跳转打印函数先于被调试函数执行;
执行跳转打印函数,打印调试信息。
进一步的,在所述确定要调试的被调试函数,跳转到跳转打印函数之前还包括:预先制作跳转指令的二进制码,所述二进制码包括跳转打印函数的地址。
进一步的,执行跳转打印函数包括:
保存被调试函数的入参和返回地址;
打印调试信息;
恢复被调试函数的栈信息;
修改跳转打印函数的栈信息。
进一步的,修改被调试函数的栈包括:保存被调试函数二进制代码的前几个字节,修改为预先写好的跳转指令的二进制码,使得第一个指令跳转到跳转打印函数。
进一步的,所述的修改跳转打印函数的信息是修改跳转打印函数的后面几字节的二进制代码,使得跳转打印函数的栈得到正常的回收并返回到被调试函数。
本发明方法的有益效果是:使用本专利描述的方法,当想查看某函数是否得到执行时,只需下发命令就可以了,如果确实得到了执行,会有对应的函数名称打印出来,如果没有得到执行,那么就没有打印信息。
该方法使用简单,且具有通用性,减少了各种调试打印信息的开发量,以及维护工作量,大大提高了工作效率。
这种方法具有较广泛的应用场景,不仅仅局限于已经发布的产品,对于正处在开发阶段的产品来说,同样可以使用该方法调试定位问题。
附图说明
图1是本发明的网络系统的调试方法的原理示意图;
图2是本发明的网络系统的调试方法的执行流程图;
图3是本发明的网络系统的调试方法的使用流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的部份描述,以避免不必要地混淆本发明的概念。
图1显示了本发明的网络系统的调试方法的原理示意图。
图中示例性的给出了最简单的函数调用关系,其中函数B是分析确定的要调试的函数,函数D是按本方法制作的跳转打印函数。
如图1所示,正常的调试方法中的函数调用过程是:函数A调用函数B,函数B调用函数C,函数C执行完后返回到函数B,函数B执行完后返回到函数A,而跳转打印函数D根本没有被执行到。上述执行顺序见图1的数字序号1-2-3-4。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于汉柏科技有限公司,未经汉柏科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310420124.0/2.html,转载请声明来源钻瓜专利网。





