用于远程系统调试的方法和装置的制造方法

文档序号:9221627阅读:245来源:国知局
用于远程系统调试的方法和装置的制造方法
【专利说明】
【背景技术】
[0001]当编写、更新以及维护软件代码时,可能需要对其进行调试以便确保适当的功能性。软件源代码常常包含差错或“bug (错误)”,其在软件代码被编译和/或执行时促使软件代码并不适当地或如预期的那样运行。为了软件代码适当地运行,可由程序员通过调试的过程来识别和/或修正这些错误。可以通过使用调试程序来辅助调试。调试程序是程序员可用来调试软件代码的软件应用程序。调试程序通常包含在调试过程中帮助程序员(诸如允许每次一行地执行软件代码、允许程序员检查与软件代码相关联的某些数据结构的内容等等)的工具。
【附图说明】
[0002]图1是根据本公开的教导构造的示例性调试系统的框图。
[0003]图2是图1的示例性调试程序的示例性实施方式的框图。
[0004]图3是表示供在图1的示例性调试系统中使用的注释说明的JAVA代码。
[0005]图4和5是表示可执行以实现图1的示例性调试系统的示例性机器可读指令的流程图。
[0006]图6是能够执行图4和5的示例性机器可读指令以实现图1的示例性调试系统的示例性处理系统的框图。
【具体实施方式】
[0007]常常由实际上出现在包含要调试的软件代码的计算机系统处的程序员来执行软件调试。然而,有时要使程序员实际上出现在包含要调试的软件代码的计算机系统处是不可能、不切实际和/或不方便的。在这些情况下,程序员可出现在一个计算机系统(即,本地计算机系统)处,该计算机系统经由网络连接到在包含要调试的软件代码的不同位置处的另一计算机系统(即,远程计算机系统)。使用已知联网软件,程序员可以从本地计算机系统操作远程计算机系统。这允许调试员在实际上出现在本地计算机系统处的同时使用远程计算机系统上的调试程序在远程计算机系统上调试软件代码。
[0008]通过在本地计算机系统与远程计算机系统之间建立网络连接,可以由实际上出现在本地计算机系统处的程序员来远程地调试远程计算机系统上的软件代码。然而,在正在调试软件代码的同时保持本地计算机系统与远程计算机系统之间的网络连接可消耗远程计算机系统上的相当多的资源。此资源使用可以潜在地阻止远程计算机系统运行其它应用程序或过程。
[0009]作为替换,可以完全在本地计算机系统上调试软件代码,其中,本地计算机系统上的软件代码在程序员开始调试时与远程计算机系统上的软件代码相同。在本地计算机系统上的调试完成之后,可以对远程计算机系统上的软件代码做出对本地计算机系统上的软件代码做出的任何改变。这种完全在本地计算机系统上调试软件的方法可在调试的同时不保持本地计算机系统与远程计算机系统之间的开放连接。然而,这种方法并不使用远程计算机系统上的数据来执行调试。
[0010]当执行软件代码时,其通常操纵一定量的数据。例如,软件代码可能从数据库访问数据,创建多个变量或其它数据对象以在执行软件代码的同时使用,并且从数据库添加、删除或修改数据。同样地,当软件代码正在执行时,其对在软件代码的执行期间和/或由于软件代码的执行可改变的数据进行操作。软件代码常常在对不同数据进行操作时不同地进行响应。例如,软件代码中的某些错误可能仅在软件代码正在对某些数据进行操作时出现。因此,为了有效地从本地计算机系统对远程计算机系统上的软件代码进行调试,在本文中公开的示例为本地计算机系统提供对远程计算机系统上的数据的访问。在某些示例中,并不在整个调试过程中都保持本地计算机系统与远程计算机系统之间的数据连接以减少远程计算机系统上的资源负荷。
[0011]在本文中公开的示例性方法、装置和/或制品提供了一种用于远程计算机系统的离线调试的机制。如在本文中使用的,术语离线被明确地定义成意指其中被用于从远程计算机系统检索用于调试的数据的数据连接被关闭、使得在不采取行动以建立数据连接的情况下在该数据连接上不能存在进一步的通信的状态。特别地,在本文中公开的示例允许在不保持本地计算机系统与远程计算机系统之间的开放连接的情况下使用来自远程计算机系统的数据从本地计算机系统调试远程计算机系统上的软件代码。如下面更详细地描述的,软件代码的某些(例如,关键)区段被标记以指示那些区段包含对于调试而言将可能相关(例如,重要)的数据元素。此标记软件代码存在于本地计算机系统和远程计算机系统两者上。
[0012]在本文公开的示例中,要调试的示例性软件代码常驻于示例性本地计算机系统和示例性远程计算机系统上。在正常操作期间,示例性软件代码在示例性远程计算机系统上执行。当要调试示例性软件代码时,在本文公开的示例中,示例性本地计算机系统建立到示例性远程计算机系统的连接并请求已标记数据。示例性远程计算机系统然后将包括所请求数据的数据快照拷贝到示例性本地计算机系统。在本文公开的示例中,在所请求数据被从示例性远程计算机系统传输到示例性本地计算机系统之后,本地计算机系统与远程计算机系统之间的连接关闭。然后在连接保持关闭的同时使用从示例性远程计算机系统拷贝的数据在示例性本地计算机系统上执行示例性软件代码,从而减少网络资源的使用。在本文公开的示例中,在示例性软件代码完成在示例性本地计算机系统上的执行之后和/或在正在本地计算机系统上执行软件代码的同时,使用调试程序在本地计算机系统上调试软件代码。
[0013]由于并非在调试过程的总持续时间期间都在示例性本地计算机系统与示例性远程计算机系统之间保持开放连接(例如,仅在用来将数据快照从远程计算机系统拷贝到本地计算机系统的时间期间保持该开放连接),所以减少(例如,最小化)远程计算机系统资源的使用。此外,通过使用存在于示例性远程计算机系统上的相同数据来执行示例性本地计算机系统上的示例性软件代码,该软件代码以软件代码在远程计算机系统上执行的相同方式在本地计算机系统上执行。因此,在执行示例性远程计算机系统上的示例性软件代码时将存在的任何错误在执行示例性本地计算机系统上的软件代码时也将存在。同样地,可以在示例性本地计算机系统上调试示例性软件代码,就如同正在示例性远程计算机系统上调试软件代码一样。
[0014]在本文公开的某些示例中,如果在正在示例性本地计算机系统上调试示例性软件的同时需要来自示例性远程计算机系统的已更新数据,则本地计算机系统建立到远程计算机系统的新连接以从远程计算机系统接收已更新数据(例如,新数据快照)。在示例性本地计算机系统上的示例性软件代码的调试完成之后,在某些公开示例中,将已调试软件代码的拷贝传输到示例性远程计算机系统,使得远程计算机系统具有与本地计算机系统相同的已调试软件代码。
[0015]图1是根据本公开的教导构造的示例性调试系统100的框图。图1的示例性系统100包括本地计算机系统102和远程计算机系统110。在所示示例中,本地计算机系统102能够经由网络116与远程计算机系统110通信且反之亦然。示例性网络116允许在示例性本地计算机系统102与示例性远程计算机系统110之间选择性地实现和/或断开连接。可使用任何类型的公共或私用网络来实现示例性网络116,诸如但不限于因特网、电话网、局域网(LAN)、电缆网和/或无线网络。为了使得能够经由示例性网络116来进行通信,图1的示例性本地计算机系统102和示例性远程计算机系统110中的每一个包括使得能够经由以太网、数字订户线(DSL)、电话线、同轴电缆和/或无线连接等来实现到网络的连接的通信接口。
[0016]图1的示例性本地计算机系统102包括调试程序104和软件代码106A。示例性远程计算机系统I1包括数据获取程序112、数据储存器114和软件代码106B。示例性本地计算机系统102上的示例性软件代码106A最初类似于示例性远程计算机系统110上的示例性软件代码106B (例如,相同)。示例性本地计算机系统102上的示例性软件代码106A和/或示例性远程计算机系统110上的示例性软件代码106B包括已标记区段108。已标记区段108识别在调试本地计算机系统102上的示例性软件代码106A之前将从示例性远程计算机系统110拷贝到示例性本地计算机系统102的变量、对象和/或其它数据元素。
[0017]示例性本地计算机系统102的示例性调试程序104用来调试常驻于本地计算机系统102上的示例性软件代码106A。示例性调试程序104经由示例性网络116来建立示例性本地计算机系统102与示例性远程计算机系统110之间的连接。示例性调试程序104将数据从远程计算机系统110拷贝到本地计算机系统102并存储已拷贝数据。示例性调试程序104使用从示例性远程计算机系统110拷贝的数据来编译和/或执行示例性本地计算机系统102上的示例性软件代码106A。示例性调试程序104检测和/或修正示例性本地计算机系统102上的示例性软件代码106A中的差错。
[0018]示例性软件代码106B在远程计算机系统110的正常操作期间在示例性远程计算机系统110上执行。在某些示例中,远程计算机系统110上的软件代码106B与本地计算机系统102上的软件代码
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1