System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及计算机技术,尤其涉及一种调试方法、调试设备、调试装置和电子设备。
技术介绍
1、电子设备的操作系统(os)加载过程包括:处理器依次读取并加载boot binary(开机引导映像)、os compressed binary(操作系统压缩映像)和os binary(操作系统映像)。
2、目前,可使用程序调试工具(例如gdb)对电子设备的os加载过程进行调试。程序调试工具包括调试主机(debugging host)和调试服务端(debugger server),调试服务端用于对电子设备os的加载过程进行监控,将电子设备的状态回传给调试主机;同时,调试主机需加载正确的地址偏移列表(address offset list)、即加载处理器当前所加载的映像的地址偏移列表,调试人员可通过调试主机设置调试请求(例如中断请求),调试服务端可以识别基于地址偏移列表的调试请求,对操作系统的加载过程进行监控,并输出结果,以便调试人员对os的加载过程进行监控和分析。
3、但是,目前的调试工具需手动加载地址偏移列表,经常会出现调试主机加载的地址偏移列表所属的映像与电子设备当前所加载的映像不同的情况。
技术实现思路
1、本公开提供一种调试方法、调试设备、调试装置和电子设备,以至少解决现有技术中存在的以上技术问题。
2、本公开第一方面提供一种调试方法,应用于调试主机,该方法包括:
3、获取调试对象将要加载的操作系统映像信息;
4、根据所述操作系统
5、解析所述可执行文件得到地址偏移列表,基于所述地址偏移列表对所述操作系统映像的加载过程进行调试。
6、其中,该方法还包括:获取并存储操作系统映像信息和对应的内存地址段信息。
7、其中,所述获取调试对象将要加载的操作系统映像信息,包括:
8、获取指令指针寄存器记载的将要执行的下一条指令的地址信息;
9、确定所述下一条指令的地址信息所属的内存地址段信息,该内存地址段信息对应的操作系统映像信息为所述调试对象将要加载的操作系统映像信息。
10、其中,所述获取指令指针寄存器记载的将要执行的下一条指令的地址信息后,该方法还包括:
11、如果确定所述下一条指令的地址信息为所属内存地址段的起始地址,则根据所述操作系统映像信息获取对应的操作系统映像的可执行文件。
12、其中,所述可执行文件包括多个部分的运行数据,以及每个部分运行数据的本地起始地址和大小;
13、所述解析所述可执行文件得到地址偏移列表,包括:
14、获取所述操作系统映像对应的内存地址段的起始地址,根据所述每个部分运行数据的本地起始地址和大小、以及所述操作系统映像对应的内存地址段的起始地址,确定每个部分运行数据在内存中的地址,得到由每个部分运行数据在内存中的地址组成的所述地址偏移列表。
15、本公开第二方面提供一种调试设备,包括:调试服务端和调试主机;
16、所述调试服务端,用于监控调试对象的操作系统加载过程,获取所述调试对象将要加载的操作系统映像信息;
17、所述调试主机,用于根据所述操作系统映像信息获取对应的操作系统映像的可执行文件,并解析所述可执行文件得到地址偏移列表,基于所述地址偏移列表对所述操作系统映像的加载过程进行调试。
18、其中,操作系统映像信息包括将要执行的下一条指令的地址信息;
19、所述调试服务端,还用于获取指令指针寄存器记载的将要执行的下一条指令的地址信息,并输出该地址信息。
20、其中,所述调试主机包括:
21、检测器,用于存储操作系统映像信息和对应的内存地址段信息,还用于确定所述下一条指令的地址信息所属的内存地址段信息,获取该内存地址段信息对应的操作系统映像信息并输出;
22、文件库,用于存储操作系统各个映像的可执行文件,还用于根据所述操作系统映像信息确定对应的可执行文件,并输出该可执行文件;
23、文件解析器,用于对可执行文件进行解析;
24、地址解析器,用于根据解析后的可执行文件生成地址偏移列表;
25、调试器,用于基于所述地址偏移列表对所述操作系统映像的加载过程进行调试。
26、本公开第三方面提供一种调试装置,应用于调试主机,包括:
27、交互模块,用于获取调试对象将要加载的操作系统映像信息;
28、查找模块,根据所述操作系统映像信息获取对应的操作系统映像的可执行文件;
29、数据分析模块,解析所述可执行文件得到地址偏移列表,基于所述地址偏移列表对所述操作系统映像的加载过程进行调试。
30、本公开第四方面提供一种电子设备,包括
31、处理器;
32、用于存储所述处理器可执行指令的存储器;
33、所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述的调试方法。
34、在上述的方案中,调试主机可获取到调试对象将要加载的操作系统映像信息,由此可获取到对应的可执行文件,生成对应的地址偏移列表,如此,调试主机可以自动生成并加载调试对象待加载操作系统映像信息的地址偏移列表,避免出现人工手动加载错误地址偏移列表的情况。
本文档来自技高网...【技术保护点】
1.一种调试方法,应用于调试主机,该方法包括:
2.根据权利要求1所述的方法,该方法还包括:获取并存储操作系统映像信息和对应的内存地址段信息。
3.根据权利要求2所述的方法,所述获取调试对象将要加载的操作系统映像信息,包括:
4.根据权利要求3所述的方法,所述获取指令指针寄存器记载的将要执行的下一条指令的地址信息后,该方法还包括:
5.根据权利要求2所述的方法,所述可执行文件包括多个部分的运行数据,以及每个部分运行数据的本地起始地址和大小;
6.一种调试设备,包括:调试服务端和调试主机;
7.根据权利要求6所述的调试设备,操作系统映像信息包括将要执行的下一条指令的地址信息;
8.根据权利要求7所述的调试设备,所述调试主机包括:
9.一种调试装置,应用于调试主机,包括:
10.一种电子设备,包括
【技术特征摘要】
1.一种调试方法,应用于调试主机,该方法包括:
2.根据权利要求1所述的方法,该方法还包括:获取并存储操作系统映像信息和对应的内存地址段信息。
3.根据权利要求2所述的方法,所述获取调试对象将要加载的操作系统映像信息,包括:
4.根据权利要求3所述的方法,所述获取指令指针寄存器记载的将要执行的下一条指令的地址信息后,该方法还包括:
5.根据权利要求2所述的...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。