调试程序的编译及运行方法及相关产品与流程
本申请实施例涉及用于软件,特别是涉及一种调试程序的编译及运行方法及相关产品。
背景技术:
1、在软件开发领域,软件(如嵌入式系统)的开发和调试具有一定的复杂性和挑战性。以车载系统为例,动态调试是车载系统开发过程中重要的环节,能够帮助开发人员快速定位和解决软件中的问题。目前,车载领域对程序进行动态调试一般是通过输入命令的方式实现。传统的调试方式主要包括两种:第一种是使用gdb工具结合ptrace系统调用和符号表进行调试,但存在符号表被去除的问题,导致调试时难以准确定位命令符号;第二种是通过程序通信协议实现调试,但需要根据通信协议对调试命令进行开发,增加了开发复杂度。
技术实现思路
1、本发明实施例提供了一种调试程序的编译及运行方法及相关产品,用于至少解决上述技术问题之一。
2、第一方面,本发明实施例提供了一种调试程序的编译方法,包括:将程序文件中与调试命令对应的所有符号信息筛选出来,其中,所述符号信息记录在符号表中;对筛选出的所有符号信息进行处理后再写入所述程序文件中;去除所述符号表。
3、第二方面,本发明实施例提供了一种调试程序的运行方法,包括:解析程序文件并定位到根据第一方面的编译方法编译后的调试程序所在的部分;至少基于所述调试程序所在的部分计算并获取所述调试程序中各符号的实际加载地址;响应于接收到调试命令,基于所述实际加载地址找到对应函数的函数指针并执行程序调试。
4、第三方面,本发明实施例提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项调试程序的编译方法或调试程序的运行方法。
5、第四方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项调试程序的编译方法或调试程序的运行方法。
6、第五方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项调试程序的编译方法或调试程序的运行方法。
7、第六方面,本申请实施例还提供一种可移动平台,包括如第三方面所述的电子设备。
8、本申请的方法通过符号萃取技术从编译后的程序文件中提取调试命令,并通过注入加密文件到程序文件中的特定部分,从而可以实现调试命令的安全嵌入和提取,进一步地,通过解析程序的特定部分,加密解密操作,以及创建管道文件和unix socket通道实现了程序和用户之间的有效交互。从而增强了调试过程中信息的获取和用户指令的传递效率,提升了调试操作的灵活性和便捷性。还通过利用abi机制将参数转换为uint64类型并统一使用寄存器传参方式调用函数指针,实现了调试命令的高效执行从而提高了调试命令的执行效率和准确性。
1.一种调试程序的编译方法,包括:
2.根据权利要求1所述的方法,其特征在于,所述将程序文件中与调试命令对应的所有符号信息筛选出来,其中,所述符号信息记录在符号表中包括:
3.根据权利要求1所述的方法,其特征在于,所述对筛选出的所有符号信息进行处理后再写入所述程序文件中包括:
4.根据权利要求3所述的方法,其特征在于,在所述通过预设工具对所有符号信息对应的文件进行复制和转换之前,所述方法还包括:
5.一种调试程序的运行方法,包括:
6.根据权利要求5所述的方法,其特征在于,
7.根据权利要求5所述的方法,其特征在于,所述至少基于所述调试程序所在的部分计算并获取所述调试程序中各符号的实际加载地址包括:
8.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7任一项所述方法的步骤。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
11.一种可移动平台,包括如权8所述电子设备。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com