一种代码调试方法及装置制造方法及图纸

技术编号:15391450 阅读:230 留言:0更新日期:2017-05-19 04:46
本发明专利技术公开了一种代码调试方法及装置,涉及计算机软件编程技术领域,解决现有的Python代码调试过程复杂繁琐、效率低的问题。本发明专利技术主要的技术方案为:获取用户在代码中设置的断点行号,得到断点集合;根据所述代码执行的当前行号,判断所述当前行号是否在所述断点集合中;若存在,则执行中断事件函数,以中断所述代码的执行。本发明专利技术主要用于调试Python代码程序。

Code debugging method and device

The invention discloses a code debugging method and a device, relating to the technical field of computer software programming, and solving the problems of complicated, tedious and low efficiency in the debugging process of the existing Python code. The technical scheme of the invention is: gets the line number breakpoints in the code, get the breakpoint set; according to the current line number of the code execution, judging whether the current line number is within the breakpoint set; if there is, executes an interrupt event function, to interrupt the execution of the code. The invention is mainly used for debugging Python code programs.

【技术实现步骤摘要】
一种代码调试方法及装置
本专利技术涉及计算机软件编程
,尤其涉及一种代码调试方法及装置。
技术介绍
IronPython是Python语言的.NET实现。有了IronPython,.NET开发人员可以在自己的软件产品中通过集成IronPython向用户提供Python代码的运行功能,对于某些业务功能需要用户自己通过Python代码定制的场景,IronPython的出现可谓是给.NET开发人员提供了强有力的技术支撑。但是,.NET开发人员在自己的软件产品中通过集成IronPython向用户提供Python代码的运行功能会遇到一个问题:用户编写完处理具体业务的Python代码提交到软件中运行的时候可能会因编写的Python代码错误导致用户预期的业务功能无法实现,此时用户需要查找自己编写的Python代码中的错误并修正它。用户通过检查Python代码发现代码中几个关键位置存在的疑点,希望Python代码的几个存在疑点的关键位置能够在执行的时候暂停以方便用户分析错误,从而解决代码存在的问题。在传统方案中,如果用户编写的Python代码存在错误,一般是用户自己通过在代码关键位置插入弹框代码来实现代码运行到关键位置时的暂停效果,然后用户再分析代码及代码的运行效果来判断代码错误的位置及原因。然而,使用向Python代码关键位置插入弹框代码的方式虽然也可以让Python代码在关键位置执行的时候暂停下来,但是这种做法仍然存在一个问题:当用户向Python代码关键位置插入了弹框代码,Python代码运行到插入了弹框代码的关键位置处暂停下来之后,如果用户通过分析代码行为认为代码关键位置后面的某个位置也存在疑点,想在执行到后面的某个位置也能暂停下来的时候,使用传统的向代码插入弹框代码来实现代码运行暂停效果方案只能让已运行的Python代码先停止运行,然后用户手动修改代码向新发现的可疑位置插入弹框代码然后再重新运行修改后的Python代码等待代码运行到可疑位置处暂停。这种做法对于用户操作极其不便,需要用户频繁的修改Python代码、停止代码运行、重新让代码运行、等待代码运行暂停。
技术实现思路
有鉴于此,本专利技术提供一种代码调试方法及装置,主要目的在于简化Python代码的调试过程,通过在调试过程中实时调整代码中的断点位置来快速确定问题代码的位置,从而提升Python代码的调试效率。为达到上述目的,本专利技术主要提供如下技术方案:一方面,本专利技术提供了一种代码调试方法,该方法包括:获取用户在代码中设置的断点行号,得到断点集合;根据所述代码执行的当前行号,判断所述当前行号是否在所述断点集合中;若存在,则执行中断事件函数,以中断所述代码的执行。另一方面,本专利技术还提供了一种代码调试装置,该装置包括:获取单元,用于获取用户在代码中设置的断点行号,得到断点集合;判断单元,用于根据所述代码执行的当前行号,判断所述当前行号是否在所述获取单元得到的断点集合中;执行单元,用于当所述判断单元判断所述当前行号为所述断点行号时,执行中断事件函数,以中断所述代码的执行。依据上述本专利技术所提出的代码调试方法及装置,只需要用户确定需要暂停调试的代码行位置,代码程序在执行时就能够自动的识别出用户所选择的暂停位置,并将代码程序停止在该位置上,等待用户的下一步指示,在接收到用户取消暂停的指令后,恢复代码程序的执行,直至运行至下一个调试断点代码行。由于本专利技术所采用的方法是实时地更新断点集合中的断点行号,因此,能够在代码程序的执行过程中随时的添加或删除用户所需的断点,为代码程序的调试提供了更加灵活的调试方式。相对于现有的代码程序调试方式,本专利技术不需要用户进行频繁的修改代码,设置插入弹框来暂停代码程序的执行,而是由用户在代码的调试过程中动态的选择需要暂停的位置,并在用户的控制下恢复代码的运行状态。因此,本专利技术所采用的代码调试方法及装置能够更快速的确定问题代码的位置,从而提升Python代码的调试效率。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本专利技术实施例提出的一种代码调试方法的流程图;图2示出了本专利技术实施例提出的另一种代码调试方法的流程图;图3示出了本专利技术实施例提出的一种代码调试装置的组成框图;图4示出了本专利技术实施例提出的另一种代码调试装置的组成框图。具体实施方式下面将参照附图更详细地描述本专利技术的示例性实施例。虽然附图中显示了本专利技术的示例性实施例,然而应当理解,可以以各种形式实现本专利技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本专利技术,并且能够将本专利技术的范围完整的传达给本领域的技术人员。本专利技术实施例提供了一种代码调试的方法,如图1所示,该方法应用于中断停代码执行的代码调试过程,具体步骤包括:101、获取用户在代码中设置的断点行号,得到断点集合。针对现有的调试方式的不足,本专利技术实施例通过获取用户设置的断点位置来确定代码在执行时需要暂停的代码行,并将这些代码行号组成断点集合。对于用户设置的断点位置,是由用户通过鼠标或者是通过触屏在代码编辑器中选择代码中需要暂停的位置,该位置可以是一个,也可以为多个。并且,用户在选择断点位置时,对于代码的当前状态没有限定,可以是在执行前,提前确定所有断点的位置,也可以是在代码的执行过程中,实时地确定断点的位置。需要说明的是,在代码执行过程中,用户只能设置在当前执行行号之后的代码行行号为断点位置。不仅如此,用户在设置断点位置的过程中,还包括对代码中增加断点和删除已有断点两种设置,增加断点如上所述,可以在代码中的任意位置设置断点,而删除断点则是在当前标有断点的代码中再次选择标有断点的代码行来取消在该代码行的中断标记。断点集合中记录了针对该代码的所有用户标记中断的代码行号,并且该集合中的断点行号是实时更新的。根据用户的选择,集合会对其中的断点行号时刻更新,增加新的断点或删除已有的断点。102、根据代码执行的当前行号,判断该行号是否在断点集合中。在创建了断点集合后,在进行代码调试时,该代码在每执行一行代码时,都会将该代码行的行号与断点集合中的断点行号进行比对,以判断该行代码在执行后是否需要暂停。对于代码在执行过程中获取代码执行的当前行号的方式本实施例不做具体限定,较简单的方式是在每一行原代码后增加一句调用中断事件函数代码,通过在该调用函数中内置计数器来统计代码执行的行数,将计数器的初始值设置为1,每调用一次该函数就在该计数器中加1,通过读取计算器的值就可确定代码执行的当前行号。在确定了代码执行的当前行号后,将该当前行号带入到断点集合中遍历进行匹配,如果该行号存在与该集合中,就执行该中断事件函数,将代码的执行状态暂停在当前行;而如果该行号不存在与该集合中,就跳过该中断事件函数继续执行代码的下一行。103、若当前行号为断点行号,则执行中断事件函数。当确定代码的当前行号为断点行号后,代码程序将执行所调用的中断事件函数,将代码的执行状态暂停在当前行。该中断事件函数的具体实现方式可以是一个有条件的循环函数,也可以是本文档来自技高网
...
一种代码调试方法及装置

【技术保护点】
一种代码调试方法,其特征在于,所述方法包括:获取用户在代码中设置的断点行号,得到断点集合;根据所述代码执行的当前行号,判断所述当前行号是否在所述断点集合中;若存在,则执行中断事件函数,以中断所述代码的执行。

【技术特征摘要】
1.一种代码调试方法,其特征在于,所述方法包括:获取用户在代码中设置的断点行号,得到断点集合;根据所述代码执行的当前行号,判断所述当前行号是否在所述断点集合中;若存在,则执行中断事件函数,以中断所述代码的执行。2.根据权利要求1所述的方法,其特征在于,所述获取用户在代码中设置的断点行号,得到断点集合包括:创建断点集合,所述断点集合中记录有用户在代码中设置的断点行号;获取用户选择设置断点位置所在的代码行号;将所述代码行号添加到所述断点集合中;当所述代码行号已存在于所述断点集合中时,在所述断点集合中删除所述代码行号。3.根据权利要求1所述的方法,其特征在于,所述根据所述代码执行的当前行号,判断所述当前行号是否在所述断点集合中包括:根据在所述代码每一行之后添加的中断代码调用所述中断代码中的中断事件函数;在执行所述中断事件函数时,判断所述代码执行的当前行号是否在所述断点集合中。4.根据权利要求3所述的方法,其特征在于,所述判断所述代码执行的当前行号是否在所述断点集合中包括:设置行号计数器,设置初始值为1;在所述代码执行时,每调用一次所述中断事件函数,则为所述计数器的值加1,得到所述代码执行的当前行号;遍历所述断点集合中的断点行号,判断所述当前行号是否为断点行号。5.根据权利要求4所述的方法,其特征在于,所述执行中断...

【专利技术属性】
技术研发人员:程水强
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:北京,11

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

1