一种多语言混合调试方法及装置制造方法及图纸

技术编号:35051245 阅读:52 留言:0更新日期:2022-09-28 10:52
本申请公开了一种多语言混合调试方法及装置,该方法包括:在源代码处于预编译阶段时,确定源代码内的调用关系;获取第一代码段对应的第一调试信息;在源代码处于调试阶段时,在调试界面内显示第二代码段对应的第二调试信息;根据调用关系确定第二代码段是否被调用;在根据调用关系确定第二代码段被第一代码段调用时,在调试界面内添加关键帧,并建立关键帧与第一调试信息的对应关系;在接收到用户对关键帧输入的触发指令时,获取与关键帧对应的第一调试信息,并在调试界面内显示第一调试信息。本申请提供的方法可以实现对不同编程语言之间且存在调用关系的代码对应的调试信息进行追溯,从而满足程序员的调试需求。从而满足程序员的调试需求。从而满足程序员的调试需求。

【技术实现步骤摘要】
一种多语言混合调试方法及装置


[0001]本申请涉及计算机
,更具体的说,涉及多语言混合调试方法及装置。

技术介绍

[0002]目前,市面上主流的集成开发环境(integrated develop environment,IDE)基本都支持多语言混合编程,即一个工程项目中的源代码会使用多种编程语言来实现。例如,出于性能的考虑,游戏软件A的源代码使用Java(计算机编程语言)实现,游戏软件A的图像渲染部分需要Java调用C++(计算机编程语言)函数实现。
[0003]在多语言混合调试的场景中,集成开发环境作为客户端可以与多个编程语言对应的调试服务建立连接,客户端的调试界面可以显示调试服务提供的调试信息,程序员可以根据调试界面内的调试信息进行程序调试。例如,假设集成开发环境作为客户端分别与第一调试服务和第二调试服务建立连接,第一调试服务为Java调试服务,第二调试服务为C++调试服务,客户端的调试界面用于显示Java调试服务提供的调试信息或C++调试服务提供的调试信息。
[0004]在不同的编程语言之间存在调用关系的情况下,客户端的调试界面无法实现不同的编程语言之间调试信息的追溯。例如,如果Java的代码段A调用了C++的代码段B,在客户端的调试界面显示C++的代码段B对应的调试信息时,程序员为了全面分析Java的代码段A处的传参和调用是否影响了C++的代码段B,程序员希望调试界面能够从C++的调试信息追溯到Java的调试信息。然而,现有的客户端的调试界面并不能从C++的代码段B对应的调试信息切换至Java的代码段A对应的调试信息。
[0005]因此,在多语言混合调试的场景中,在多个编程语言的代码段之间存在调用关系时,如何使得客户端的调试界面实现不同编程语言之间的调试信息的追溯,成为目前亟需解决的技术问题。

技术实现思路

[0006]本申请提供了一种多语言混合调试方法及装置,以使客户端的调试界面可以对不同编程语言之间且存在调用关系的代码段对应的调试信息进行追溯。
[0007]第一方面,本申请提供了一种多语言混合调试方法,该方法应用于具有源代码的集成开发环境,源代码至少包括第一代码段和第二代码段,该方法包括:在源代码处于预编译阶段时,确定源代码内的调用关系,调用关系包括第一代码段调用第二代码段,第一代码段和第二代码段为不同的编程语言;获取第一代码段对应的第一调试信息;在源代码处于调试阶段时,在调试界面内显示第二代码段对应的第二调试信息,预编译阶段早于调试阶段;根据调用关系确定第二代码段是否被调用;在根据调用关系确定第二代码段被第一代码段调用时,在调试界面内添加关键帧,并建立关键帧与第一调试信息的对应关系;在接收到用户对关键帧输入的触发指令时,获取与关键帧对应的第一调试信息,并在调试界面内显示第一调试信息。
[0008]在第一方面中,在源代码处于预编译阶段时,集成开发环境通过确定源代码内的调用关系,可以得知源代码中的第一代码段调用第二代码段,且第一代码段和第二代码段为不同的编程语言。集成开发环境需要获取第一代码段对应的第一调试信息,即调用者的调试信息。在调试界面内显示第二代码段对应的第二调试信息时,集成开发环境需要根据调用关系确定第二代码段是否被调用。在根据调用关系确定第二代码段被第一代码段调用时,在调试界面内添加关键帧,并建立关键帧与第一调试信息的对应关系,以便于在接收到用户对关键帧输入的触发指令时,集成开发环境可以获取与关键帧对应的第一调试信息,并在调试界面内显示第一调试信息。因此,本申请提供的集成开发环境可以实现对不同编程语言之间且存在调用关系的代码对应的调试信息进行追溯,从而满足程序员的调试需求。
[0009]在第一方面的一种可能的实现方式中,获取第一代码段对应的第一调试信息,包括:在源代码处于预编译阶段时,在第一代码段处设置第一断点,第一代码段为调用关系内调用第二代码段的调用者;在源代码处于调试阶段且第一代码段被第一断点中断时,获取第一代码段对应的第一调试信息,存储第一调试信息,并在第一断点所在的位置继续运行源代码。
[0010]在第一方面的一种可能的实现方式中,在调试界面内显示第二代码段对应的第二调试信息,包括:在第二代码段被第二断点中断时,获取第二代码段对应的第二调试信息,并在调试界面内显示第二调试信息,第二断点为在源代码处于编写阶段状态下用户在第二代码段处设置的断点。
[0011]在第一方面的一种可能的实现方式中,第二调试信息至少包括第二断点、调用堆栈和变量。
[0012]在第一方面的一种可能的实现方式中,在调试界面中的调用堆栈窗口添加关键帧,调用堆栈窗口用于显示调用堆栈,关键帧位于调用堆栈的栈底。
[0013]第二方面,本申请提供了一种电子设备,该电子设备包括一个或多个处理器以及存储器,存储器用于存储指令;处理器用于执行指令,以使电子设备执行以下操作:在集成开发环境内的源代码处于预编译阶段时,确定源代码内的调用关系,调用关系包括第一代码段调用第二代码段,第一代码段和第二代码段为不同的编程语言;获取第一代码段对应的第一调试信息;在源代码处于调试阶段时,在调试界面内显示第二代码段对应的第二调试信息,预编译阶段早于调试阶段;根据调用关系确定第二代码段是否被调用;在根据调用关系确定第二代码段被第一代码段调用时,在调试界面内添加关键帧,并建立关键帧与第一调试信息的对应关系;在接收到用户对关键帧输入的触发指令时,获取与关键帧对应的第一调试信息,并在调试界面内显示第一调试信息。
[0014]在第二方面的一种可能的实现方式中,处理器具体用于执行指令,以使电子设备执行以下操作:在源代码处于预编译阶段时,在第一代码段处设置第一断点,第一代码段为调用关系内调用第二代码段的调用者;在源代码处于调试阶段且第一代码段被第一断点中断时,获取第一代码段对应的第一调试信息,存储第一调试信息,并在第一断点所在的位置继续运行源代码。
[0015]在第二方面的一种可能的实现方式中,处理器具体用于执行指令,以使电子设备执行以下操作:在第二代码段被第二断点中断时,获取第二代码段对应的第二调试信息,并
在调试界面内显示第二调试信息,第二断点为在源代码处于编写阶段状态下用户在第二代码段处设置的断点。
[0016]在第二方面的一种可能的实现方式中,第二调试信息至少包括第二断点、调用堆栈和变量。
[0017]在第二方面的一种可能的实现方式中,处理器具体用于执行指令,以使电子设备执行以下操作:在调试界面中的调用堆栈窗口添加关键帧,调用堆栈窗口用于显示调用堆栈,关键帧位于调用堆栈的栈底。
[0018]第三方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有软件代码,软件代码为在被一个或多个处理器读取后能够执行第一方面或第一方面的每一种可能的实现方式。
附图说明
[0019]图1为现有的集成开发环境100的系统架构的示意图;
[0020]图2为集成开发环境100处于第一状态的界面示意图;
[002本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多语言混合调试方法,其特征在于,所述方法应用于具有源代码的集成开发环境,所述源代码至少包括第一代码段和第二代码段,所述方法包括:在所述源代码处于预编译阶段时,确定所述源代码内的调用关系,所述调用关系包括所述第一代码段调用所述第二代码段,所述第一代码段和所述第二代码段为不同的编程语言;获取所述第一代码段对应的第一调试信息;在所述源代码处于调试阶段时,在调试界面内显示所述第二代码段对应的第二调试信息,所述预编译阶段早于所述调试阶段;根据所述调用关系确定所述第二代码段是否被调用;在根据所述调用关系确定所述第二代码段被所述第一代码段调用时,在所述调试界面内添加关键帧,并建立所述关键帧与所述第一调试信息的对应关系;在接收到用户对所述关键帧输入的触发指令时,获取与所述关键帧对应的所述第一调试信息,并在所述调试界面内显示所述第一调试信息。2.根据权利要求1所述的方法,其特征在于,获取所述第一代码段对应的第一调试信息,包括:在所述源代码处于预编译阶段时,在所述第一代码段处设置第一断点,所述第一代码段为所述调用关系内调用所述第二代码段的调用者;在所述源代码处于调试阶段且所述第一代码段被所述第一断点中断时,获取所述第一代码段对应的第一调试信息,存储所述第一调试信息,并在所述第一断点所在的位置继续运行所述源代码。3.根据权利要求1或2所述的方法,其特征在于,在调试界面内显示所述第二代码段对应的第二调试信息,包括:在所述第二代码段被第二断点中断时,获取所述第二代码段对应的第二调试信息,并在所述调试界面内显示所述第二调试信息,所述第二断点为在所述源代码处于编写阶段状态下用户在所述第二代码段处设置的断点。4.根据权利要求3所述的方法,其特征在于:所述第二调试信息至少包括所述第二断点、调用堆栈和变量。5.根据权利要求4所述的方法,其特征在于,在所述调试界面内添加关键帧,包括:在所述调试界面中的调用堆栈窗口添加所述关键帧,所述调用堆栈窗口用于显示所述调用堆栈,所述关键帧位于所述调用堆栈的栈底。6.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器以及存储器,所述存储器用于存储指令;所述处理器用于执行所述指令,以使所述电子设备执行...

【专利技术属性】
技术研发人员:景丽婷裴云华
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1