一种移动终端内核符号表的调试方法和装置的制造方法_2

文档序号:9452999阅读:来源:国知局
,将待更新函数替换为新建内核模块的函 数。
[0035] 修改为:根据待更新函数的地址,将待更新函数替换为新建内核模块的函数,如步 骤103的代码中,ts_>fb_notif.notifier_call在原始内核代码中为:
[0036]ts->fb_notif.notifier_call=fb_notifier_callback;
[0037] 其中fb_notifier_callback为原始内核代码中的一个函数。
[0038] 在新建内核模块中,将其修改为:
[0039]ts->fb_notif.notifier_call=changed_notifier_call;
[0040] 即,内核其他模块调用ts_>fb_notif.notifier_call时,原来实际执行的是fb_ notifier_callback()函数,而现在执行的是changed_notifier_call()函数。
[0041] 步骤105,根据调试信息,对新建内核模块进行调试。
[0042] 在本步骤中,将新建内核模块的文件放置到当前系统使用的内核的源代码中, 并在内核配置文件中增加编译选项,如DEBUG_TP_CALLBACK=m,和obj- (DEBUG_TP_ CALLBACK)+ = hello, o
[0043] 内核编译时,即会生成hello, ko文件,为新建内核模块文件。
[0044] 将此新建内核模块文件使用insmod命令插入到当前系统中,就会执行module_ init(hello_init)中声明的hello_init函数,从而实现调试功能。
[0045] 本发明还提供了一种移动终端内核符号表的调试装置,如图2所示,包括:
[0046] 查找模块201,用于在移动终端的内核符号表中,查找待更新函数的函数地址;
[0047] 新建模块202,用于新建内核模块,并在新建内核模块中,设置调试信息;
[0048] 替换模块203,用于根据待更新函数的函数地址,将待更新函数替换为新建内核模 块的函数;
[0049] 调试模块204,用于根据调试信息,对新建内核模块进行调试。
[0050] 其中,新建模块,具体用于:通过静态加载方式或者动态加载方式新建内核模块; 采用printkO调试函数,在新建内核模块中设置调试信息。
[0051]调试模块,具体用于:将新建内核模块的函数使用insmod命令插入到当前系统 中,并根据printk()调试函数中的调试信息,对新建内核模块进行调试。
[0052] 本发明的移动终端内核符号表的调试装置的相关技术细节和前述的移动终端内 核符号表的调试方法类似,故在此不赘述。
[0053] 虽然本发明已以较佳实施例披露如上,但本发明并非限定于此。任何本领域技术 人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应 当以权利要求所限定的范围为准。对于本领域技术人员而言,显然本发明不限于上述示范 性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形 式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性 的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同 要件的含义和范围内的所有变化囊括在本发明内。
【主权项】
1. 一种移动终端内核符号表的调试方法,其特征在于,包括: 在移动终端的内核符号表中,查找待更新函数的函数地址; 新建内核模块,并在新建内核模块中,设置调试信息; 根据待更新函数的函数地址,将待更新函数替换为新建内核模块的函数; 根据调试信息,对新建内核模块进行调试。2. 如权利要求1所述的移动终端内核符号表的调试方法,其特征在于,所述内核符号 表包括函数和函数地址对应;根据待更新函数,查找对应的函数地址。3. 如权利要求1所述的移动终端内核符号表的调试方法,其特征在于,所述在新建内 核模块,具体为: 通过静态加载方式新建内核模块,包括把组件添加进内核文件中,在目录Kconfig文 件中增加新代码对应的编译选项,在Makefile文件中添加编译条目;或者, 通过动态加载方式新建内核模块,包括进入Linux内核,进入/drivers建立文件夹, 在文件夹里建立Makefile文件和Kconfig文件;在Makefile文件中添加出口函数,在 Kconfig文件中添加入口函数;配置新建内核模块。4. 如权利要求1所述的移动终端内核符号表的调试方法,其特征在于,所述在新建内 核模块中,设置调试信息,具体为: 采用printkO调试函数,在新建内核模块中设置调试信息。5. 如权利要求4所述的移动终端内核符号表的调试方法,其特征在于,所述根据调试 信息,对新建内核模块进行调试,具体为: 将新建内核模块的函数使用insmod命令插入到当前系统中,并根据printkO调试函 数中的调试信息,对新建内核模块进行调试。6. -种移动终端内核符号表的调试装置,其特征在于,包括: 查找模块,用于在移动终端的内核符号表中,查找待更新函数的函数地址; 新建模块,用于新建内核模块,并在新建内核模块中,设置调试信息; 替换模块,用于根据待更新函数的函数地址,将待更新函数替换为新建内核模块的函 数; 调试模块,用于根据调试信息,对新建内核模块进行调试。7. 如权利要求6所述的移动终端内核符号表的调试装置,其特征在于,所述新建模块, 具体用于: 通过静态加载方式或者动态加载方式新建内核模块; 采用printkO调试函数,在新建内核模块中设置调试信息。8. 如权利要求7所述的移动终端内核符号表的调试装置,其特征在于,所述调试模块, 具体用于: 将新建内核模块的函数使用insmod命令插入到当前系统中,并根据printkO调试函 数中的调试信息,对新建内核模块进行调试。
【专利摘要】本发明提供一种移动终端内核符号表的调试方法和装置,其中方法包括:在移动终端的内核符号表中,查找待更新函数的函数地址;新建内核模块,并在新建内核模块中,设置调试信息;根据待更新函数的函数地址,将待更新函数替换为新建内核模块的函数;根据调试信息,对新建内核模块进行调试。本发明能够准确定位并进行在线更新,节省人力且缩短测试时间。
【IPC分类】G06F11/36
【公开号】CN105204998
【申请号】CN201510645878
【发明人】耿兴欢
【申请人】上海斐讯数据通信技术有限公司
【公开日】2015年12月30日
【申请日】2015年9月30日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1