欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在ABAP里实现条件断点的三种方式 ABAPSAPDebug条件断点 

程序员文章站 2024-01-30 09:06:46
...

背景

有不同的同事问我这个问题:例如下图的LOOP要执行1000次,我只对其中的某一次比如第501次循环感兴趣,我肯定不可能按500次F5然后进入第501次的调试。或者我只对LOOP里某个变量为某一个具体值的那一次循环感兴趣。如何才能避免重复按F5,让断点直接停在满足我期望的条件上?

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 

其实有三种方法实现。

方法1 - 使用ABAP调试器自带的条件断点功能

假设上图的例子里,我希望循环体内的第15行,当<data>等于22时触发断点。

创建一个新的动态断点:

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 

在此处维护该断点触发的条件:

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 

按F8,当<data>的值在循环体内被赋以22时,断点触发:

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 

方法2 - 采用如下菜单创建观察点

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 
 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 

这种方法和法1类似。

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 
 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 

方法3 - 使用ABAP调试器脚本

切换到Script tab,创建一个新的脚本:

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 

点击Script向导按钮, 双击选项Variable Value(for Simple Variable):

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 

这个向导会自动生成一些脚本源代码,也就是下图红色方框内的代码。我们需要做的事情就是手动写下第51行到第53行的代码。点击按钮"Save As"保存这段脚本并给其取个名字,例如ZJERRY_TEST。

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 

再次启动您的程序,加载刚才保存的脚本ZJERRY_TEST。

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 

然后点击下面的按钮:

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 

断点同样会自动停下来:

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点 
 
在ABAP里实现条件断点的三种方式
            
    
    
        ABAPSAPDebug条件断点