用于自动化跨系统程序调试的方法和装置的制造方法_2

文档序号:9865386阅读:来源:国知局
下文和权利要求 中使用的术语"基于"表示"至少部分地基于"。术语"包括"表示开放性包括,目Γ包括但不 限于"。术语"多个"表示"两个或更多"。术语"一个实施例"表示"至少一个实施例"。术 语"另一实施例"表示"至少一个另外的实施例"。其他术语的定义将在下文描述中给出。 [00巧]图2示出了本发明的实施例可实现于其中的调试环境200的示意图。根据本 发明的实施例,提供了一种可用于协调不同系统之间的程序调试的实体,称为"调试协调 器"210。一般而言,调试协调器210可W获取跨系统调试所涉及的各个调试会话中的调试 信息(例如断点),并且基于送些调试信息对用户的跨系统调试动作进行记录和存储。
[0026] 所记录的信息随后可被用于自动化调试或者问题重现。而且,基于所记录的信息, 可W支持基于跨系统状态的、较高级别的调试。另外,在一个实施例中,还可W从多个系统 的大量任务中,准确地确定作为调试目标的任务。
[0027] 为讨论方便之目的,将描述跨两个系统的程序调试。送两个系统分别被称为"第一 系统"220和"第二系统"230。但是,应当理解,送仅仅是示例性的,无意W任何方式限制本 发明的范围。本发明的实施例适用于任意数目的系统之间的调试。
[002引注意,在本公开的上下文中,术语"系统"可W表示两个独立的机器或设备,也可W 表示彼此独立的应用、程序模块,等等。相应地,第一系统220与第二系统230之间的通信 可W借助于计算机网络、电信网络之类的网络连接来实现,也可W借助于功能调用、进程间 通信之类的单机通信机制来实现。而且,跨系统程序调试可能涉及多个不同的物理设备,也 可W在单个物理设备上完成。
[0029] 另外,根据本发明的实施例,调试协调器210可W部署在第一系统220和第二系统 230中的任何一个系统上。备选地,调试协调器210也可W独立于第一系统220和第二系统 230而部署。
[0030] 在第一系统上执行的调试会话(debugging session)被称为"第一调试会话"225, 在第二系统上执行的调试会话被称为"第二调试会话"235。在此使用的术语"调试会话"是 指用于对程序进行调试的会话或者过程。例如,用户可W通过针对特定的程序代码片段启 动调试器而创建调试会话。处于调试会话中的程序可W如正常程序一样创建任务并且进行 操作,直到遇到断点或者任何其他调试标志,送将在下文详述。
[0031] 在一个实施例中,调试会话可W在相关的系统上运行。备选地,在一个实施例中, 调试会话可W全部或部分地位于相关系统的远程,但是能够对系统上执行的程序进行调 试。本发明的范围在此方面不受限制。
[0032] 图3A示出了根据本发明实施例的用于跨系统的程序调试的方法300A的流程图。 方法300A可W由调试协调器210来执行。如图所示,方法300A开始于步骤S310,在此获取 与第一系统的第一调试会话相关联的调试信息,称为"第一调试信息"。
[0033] 根据本发明的实施例,第一调试信息可W指示与第一调试会话相关联的任何信 息。特别地,在一个实施例中,第一调试信息至少包括用户在第一调试会话中设置在程序代 码中的一个或多个断点。例如,第一调试信息可W指明第一调试会话中的每个断点在所调 试的程序代码中的位置,例如W行号指示。为讨论方便起见,假设在步骤S310处至少确定 第一系统的第一调试会话中的第一断点。
[0034] 除了指示断点的信息之外,在一个实施例中,第一调试信息还可W指示与第一调 试会话相关联的任何其他信息,例如所调试的程序代码的状态,等等。备选地或附加地,第 一调试信息可W包括第一系统、执行所述第一调试会话所使用的IDE等各种其他方面的有 关信息。
[0035] 接下来,在步骤S320,在此获取与第二系统的第二调试会话相关联的调试信息,称 为"第二调试信息"。类似于第一调试信息,第二调试信息至少可W指示用户在第二调试会 话中设置于所调试程序代码中的一个或多个断点。第二调试信息还可W包括任何其他有关 信息。为讨论方便起见,假设在步骤S320处至少确定第二系统的第二调试会话中的第二断 点。
[0036] 特别地,尽管步骤S320在图3A中被示为在步骤S310之后执行,但是送仅仅是为 了讨论方便之目的,无意W任何方式限制本发明的范围。将会理解,第二调试信息可W先于 第一调试信息被获取,或者与第一调试信息同时获取。换言之,步骤S310和S320可W按照 任何顺序执行,包括并行执行。
[0037] 随后,在步骤S330,确定用户是否执行了将所述第一断点与所述第二断点相关联 的调试动作。如已知的,当调试会话中的被调试程序执行到断点之后,用户可W执行调试动 作。在此使用的术语"调试动作"是指当被调试程序执行到断点之后,由用户执行的用于调 试程序的动作。
[0038] 在一个实施例中,调试动作可W包括将被调试程序保持在中止执行的状态。由此, 用户例如可W查看被调试程序和/或系统的状态。备选地或附加地,在一个实施例中,调试 动作可W包括进入"单步执行"模式。在该模式中,用户可W逐行调试程序,W便发现程序 代码中存在的问题。其他调试动作也是可行的。
[0039] 与调试动作相反,如果用户在被调试程序达到断点之后直接命令程序继续执行 (即,跳过断点),则认为用户没有在该断点处执行调试动作。
[0040] 如果用户在第一调试会话中在第一断点处执行调试动作的情况下,在第二调试会 话中在第二断点处也执行了调试动作,则认为用户执行了将第一断点与第二断点相关联的 调试动作(分支"是")。例如,如果用户在第一断点处将第一调试会话保持中止和/或进 入单步执行模式的情况下,在第二断点处将第二调试会话保持中止和/或进入单步执行模 式,则认为用户执行了将第一断点与第二断点相关联的调试动作。应当理解,第一调试会话 与第二调试会话中的调试动作可W相同,也可W不同。此时,方法进行到步骤S340,在此记 录第一断点与第二断点之间的关联。
[0041] 在一个实施例中,可W使用表(t油le)来记录不同调试会话中的断点之间的关 联。送种表可W被称为"调试顺序表"。在送样的实施例中,在步骤S340,可W在表中创建 将第一断点与第二断点相关联的条目。送样的条目按照调试的时间顺序而被存储在调试顺 序表中。作为示例,下面的表1示出了一个调试顺序表的示例。当然,本发明的范围并不限 于表。相反,可W使用任何适当的数据结构来存储断点之间的跨系统关联关系。
[0042] 表 1
[0043]
[0044] 应当理解,不同调试会话中的断点之间的关联并不一定是一对一关联。例如,第一 调试会话中的一个断点可W与第二调试会话中的多个断点相关联。类似地,在一个实施例 中,第二调试会话中的一个断点可W与第一调试会话中的多个断点相关联。本发明的范围 在此方面不受限制。
[0045] 在某些实施例中,除了上面参考图3A描述的步骤S310到S340之外,根据本发明 实施例的跨系统程序调试还可W包括若干可选的操作或者步骤。如图3B所示,在一个实施 例中,在步骤S350,在此记录用户在关联的一组断点之后所做的动作。步骤S350可W在图 3A中所示的步骤S340之后被执行。继续考虑上文示例,为讨论方便之目的,进一步假设: 第一断点先于第二断点到达。也就是说,第一调试会话中的被调试程序首先执行到第一断 点;而后第二调试会话中的被调试程序执行到第二断点。此时,在一个实施例中,可W监测 并且记录用户在与第二断点相关联的调试动作之后所执行的动作。
[0046] 特别地,在一个实施例中,可W记录用户在从第二断点返回之后是选择继续执行 第一调试会话还是第二调试会话。如下文将会讨论的,送将有利于问题的重现和自动化调 试。备选地或附加地,也可W记录其他后续动作,例如用户对第一系统和/或第二系统上的 相关状态的设置、有关数据或文件的操作,等等。
[0
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1