实现ABAP条件断点的三种方式分别是什么-创新互联

这篇文章给大家介绍实现ABAP条件断点的三种方式分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联是一家以网络技术公司,为中小企业提供网站维护、网站设计制作、网站建设、网站备案、服务器租用、域名申请、软件开发、小程序设计等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站来电联系:18980820575

ABAP条件断点这个话题,Jerry的同事曾经问过我,虽然小但很实用。

所谓条件断点,就是设置在某行语句上的断点,并不总是会触发,而是仅当满足一定条件时才触发。

条件断点的使用场合是什么?

举个简单的例子,下图第15行ADD语句设置一个断点。因为它在一个具有1000行的内表循环体内,所以正常情况下会触发1000次。

实现ABAP条件断点的三种方式分别是什么

假设我们在调试一个bug,这个bug当循环到第999次时才出现,那我们前998次的单步调试都是无效的。最高效的做法,就是借助条件断点的概念,让断点在代码执行到第999次循环时,触发且仅触发一次。

小编介绍实现ABAP条件断点的三种方式。

方法一

给ABAP断点维护触发条件

在ABAP调试器里点击Break/Watchpoints面板,新建一个断点:

实现ABAP条件断点的三种方式分别是什么

在Free Condition Entry里维护这个断点的触发条件。

回到我上面的例子,我的内表里包含了从1到1000的整数,总共1000条记录,而我的触发条件维护为<data> = 22. 显然,这个断点在第22次循环时,唯一触发一次。

实现ABAP条件断点的三种方式分别是什么

维护完毕后,我们在断点面板里看到了这个新建的断点:

实现ABAP条件断点的三种方式分别是什么

按F8继续调试,断点有且仅触发了一次,此时<data>的值为22,正好符合我们维护的触发条件,成功。

实现ABAP条件断点的三种方式分别是什么

方法二

利用ABAP调试器里的观察点(Watchpoint)

ABAP的调试器,使用方式变化多端。

此处创建Watchpoint:

实现ABAP条件断点的三种方式分别是什么

我们知道在LOOP循环体内,系统变量sy-tabix会自动赋以当前的循环次数。因此我们在Watchpoint的触发条件里,维护成sy-tabix = 22, 也可以达到在第22次循环时触发的目的。

实现ABAP条件断点的三种方式分别是什么

Watchpoint创建好之后显示如下:

实现ABAP条件断点的三种方式分别是什么

按F8继续调试,程序果然在第22次循环时触发了:

实现ABAP条件断点的三种方式分别是什么

并且调试器里弹出一条提示信息:Watchpoint reached

实现ABAP条件断点的三种方式分别是什么

方法三

ABAP Debugger Script

ABAP Debugger Script这项技术,在SAP研究院内部用的很广泛。

回到上面的例子,我们将编写一段简单的ABAP代码,去控制目标ABAP代码的断点触发。

在ABAP调试器里,点击Script标签页,创建一个新的ABAP脚本:

实现ABAP条件断点的三种方式分别是什么

我们想用ABAP脚本监控ABAP代码里某个简单变量的值变化,所以使用脚本创建向导里的Variable Value(for Simple Variables):

实现ABAP条件断点的三种方式分别是什么

这个向导会自动帮我们生成ABAP脚本,其实也就是一段ABAP代码了,这段代码可以用编程的方式,在调试器激活的上下文里,获取某个ABAP变量的值。

下图脚本的语义很清晰,获取调试器里field symbol <data>的值,存储在临时变量lv_result里。如果该变量的值为22,就调用ABAP脚本的工具方法break,触发断点。

实现ABAP条件断点的三种方式分别是什么

把这段脚本通过上图的Save As按钮另存下来,取名ZJERRY_TEST.

然后重新执行我们的测试代码, 使用Load Script加载刚才保存的ABAP脚本:

实现ABAP条件断点的三种方式分别是什么

点击Start Script执行脚本:

实现ABAP条件断点的三种方式分别是什么

断点再次如期触发.

实现ABAP条件断点的三种方式分别是什么

关于实现ABAP条件断点的三种方式分别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

当前名称:实现ABAP条件断点的三种方式分别是什么-创新互联
标题路径:https://www.cdcxhl.com/article22/ehjjc.html

成都网站建设公司_创新互联,为您提供品牌网站建设网站维护自适应网站企业网站制作微信公众号小程序开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发