跳转表查找方法、装置、电子设备及存储介质制造方法及图纸

技术编号:33633363 阅读:28 留言:0更新日期:2022-06-02 01:41
本发明专利技术实施例提供了一种跳转表查找方法、装置、电子设备及存储介质,涉及电子技术领域。该方法包括:确定目标文件中包括的函数,按指令的执行顺序,识别函数中的指令,并记录识别顺序,在识别到动态跳转指令时,沿识别顺序逆序查找,确定与动态跳转指令读取的寄存器对应的目标指令,从目标文件中获取目标指令的重定位信息,以及其它指令的重定位信息,基于目标指令的重定位信息和其它指令的重定位信息,确定跳转表的存储区域。在查找跳转表时,结合动态跳转指令所用的寄存器与指令的执行顺序,确定目标指令,根据目标指令的重定位信息确定跳转表在目标文件中的位置,可以快速确定动态跳转指令的跳转表在目标文件中的存储区域。转指令的跳转表在目标文件中的存储区域。转指令的跳转表在目标文件中的存储区域。

【技术实现步骤摘要】
跳转表查找方法、装置、电子设备及存储介质


[0001]本专利技术涉及电子
,特别是涉及一种跳转表查找方法、装置、电子设备及存储介质。

技术介绍

[0002]在程序开发过程中,在使用高级别的程序设计语言开发得到程序的源文件之后,需要通过编译和汇编操作,将源文件转为可重定位的目标文件,目标文件中包括程序的机器代码和程序执行时所需的数据。程序中通常包括多个函数,当函数中包括动态跳转指令时,目标文件中会包括动态跳转指令的跳转表,跳转表中包括动态跳转指令跳转时所需的跳转地址。
[0003]通常,在得到可重定位的目标文件之后,需要对可重定位的目标文件进行调测,此时需要从目标文件中查找确定动态跳转指令的跳转表,由于目标文件中包括的内容较多,因此从目标文件查找确定跳转表时比较困难。

技术实现思路

[0004]鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种跳转表查找方法,以解决从目标文件查找确定跳转表时比较困难问题。
[0005]相应的,本专利技术实施例还提供了一种跳转表查找装置本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种跳转表查找方法,其特征在于,包括:确定目标文件中包括的函数;按所述函数中指令的执行顺序,依次识别所述函数中的指令,并记录识别顺序;在识别到动态跳转指令的情况下,沿所述识别顺序逆序查找,确定与所述动态跳转指令所读取的第一寄存器对应的目标指令;所述目标指令用于向所操作的第二寄存器写入跳转表的基地址,以使位于所述目标指令和所述动态跳转指令之间的其它指令基于所述第二寄存器中的基地址向所述第一寄存器写入所述跳转表中的目的地址供所述跳转指令读取;从所述目标文件中获取所述目标指令的重定位信息,以及获取所述函数中包括的其它指令的重定位信息;基于所述目标指令的重定位信息和所述其它指令的重定位信息,从所述目标文件中确定所述跳转表的存储区域,以从所述存储区域中获取跳转表。2.根据权利要求1所述的方法,其特征在于,所述沿所述识别顺序逆序查找,确定与所述动态跳转指令所读取的第一寄存器对应的目标指令,包括:沿所述识别顺序逆序访问所述识别顺序中记录的已识别指令,确定所述已识别指令所操作的寄存器;在所述已识别指令通过所操作的寄存器向所述第一寄存器传递数据的情况下,继续沿所述识别顺序逆序访问向所述已识别指令所操作的寄存器传递数据的其它已识别指令,直至访问到的目标类别的已识别指令时,将目标类别的所述已识别指令作为所述目标指令。3.根据权利要求2所述的方法,其特征在于,所述目标指令为赋值指令;所述在所述已识别指令通过所操作的寄存器向所述第一寄存器传递数据的情况下,继续沿所述识别顺序逆序访问向所述已识别指令所操作的寄存器传递数据的其它已识别指令,直至访问到的目标类别的已识别指令时,将目标类别的所述已识别指令作为所述目标指令,包括:在访问到的所述已识别指令为向所述第一寄存器写入数据的加载指令的情况下,沿所述识别顺序逆序访问确定向所述加载指令所读取的第三寄存器写入数据的移位指令;沿所述识别顺序逆序访问确定向所述移位指令所读取的所述第二寄存器写入数据的所述赋值指令。4.根据权利要求1所述的方法,其特征在于,所述按所述函数中指令的执行顺序,依次识别所述函数中的指令,并记录识别顺序,包括:按所述执行顺序依次访问所述函数中的指令,在访问的所述指令未被标记的情况下,识别并标记所述指令,以及将所述指令记录到所述识别顺序中;在访问的所述指令被标记或者在访问到预设指令的情况下,在所述指令处停止执行访问所述函数中的指令的步骤;在访问到分支指令的情况下,在所述分支指令指示的每个执行方向,继续执行访问所述函数中的指令的步骤。5.根据权利要求1所述的方法,其特征在于,所述基于所述目标指令的重定位信息和所述其它指令的重定位信息,从所述目标文件中确定所述跳转表的存储区域,包括:在所述其它指令的重定位信息中包括目标类别的重定位信息的情况下,从目标类别的所述重定位信息中确定目标重定位信息;
将所述目标指令的重定位信息指示的地址与所述目标重定位信息指示的地址之间的区域作为所述存储区域;其中,所述目标类别的重定位信息指示的位置位于所述目标指令的重定位信息指示的地址之后,所述目标重定位信息为目标类别的所述重定位信息中与所述目标指令的重定位信息指示的地址最近的重定位信息。6.根据权利要求1

5中任一项所述的方法,其特征在于,在所述从所述目标文件中确定所述跳转表的存储区域之后,还包括:从所述存储区域获取所述跳转表中的至少一个表项;所述表项中包括跳转地址;在所述跳转地址指向所述函数在所述目标文件中的位置的情况下,确定所述存储区域正确。7.一种跳转表查找装置,其特征在于,包括:第一确定模块,用于确定目标文件中包括的函数;识别模块,用于按所述函数中指令的执行顺序,依次识别所述函数中的指令,并记录识别顺序;查找模块,用于在识别到动态跳转指令的情况下,沿所述识别顺序逆序查找,确定与所述动态跳转指令所读取的第一寄存器对应的目标指令;所述目标指令用于向所操作的第二寄存器写入跳转...

【专利技术属性】
技术研发人员:何金阳杨铁柱李雪峰
申请(专利权)人:龙芯中科成都技术有限公司
类型:发明
国别省市:

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

1