FavoriteLoading
0

Debug技巧汇总

[隐藏]

作为一个ABAPer一定要掌握两个技能一个是baidu google的技能,另外一个就是debug的技能,下面就总结一下debug的方法和小技巧。

1, SE38中设置断点

程序运行前可以在ABAP编辑器中设置断点,如下:

会话断点-在同一登录会话不同窗口都有效,用户注销后消失

外部断点-用户注销后再登录还是有效,但只针对同一用户有效

2016-09-10_22-45-48

程序运行中也可以设置断点:此断点又叫调试断点,仅在本次运行时有效,但是点击保存按钮后断点变成会话断点,本次会话的所有窗口都有效,只有在退出登录后消失

2016-09-10_22-51-57

2016-09-10_22-56-49

2, 代码断点

如果不愿意反复设定断点,也可以通过代码一劳永逸的设定断点,语法如下:

BREAK 'user1'."仅会在用户user1运行程序时有效,常用

BREAK-POINT. "针对所有的用户有效,慎用

可以在break 或break-point前调用FM C160_BREAK_POINT,然后在su3里对当前账户做如下设置:

2016-09-10_23-04-06

这样只有在ESP为‘X'的时候,break断点才停,ESP为空的时候,break断点不会停,方便调试。

3, Breakpoint at

在程序运行时进入debug模式后,可以通过菜单Breakpoints-->Breakpoint at 设定更加多样化的断点,比如,到某个特定form停下,到某个特定语句,某个message停下,等等,下面一一说明:

3.1 语句断点

比如设定Select语句断点,

2016-09-10_23-15-52

设定后,所有select语句处都会出现断点

2016-09-10_23-18-03

3.2 form断点

160923340028536

160923348304649

3.3 函数断点

程序会在指定函数停下,

2016-09-10_23-22-02

3.4 类方法断点

到指定类方法断点会停下,

类分三种,全局类,程序中的类,类中类,

2016-09-10_23-25-45

3.5 异常断点

这个会在解决一些疑难杂症时用到,比如说要查找程序运行到何处时发生异常,

2016-09-10_23-31-24

3.6 消息断点

这个也是一个常用的断点,有时一些业务顾问会叫abap跟踪程序,看看某某错误消息是在什么地方报出来的,

2016-09-10_23-35-49

2016-09-10_23-34-59

还有其他写breakpoint at,这里就不一一累述,大家自己研究一下吧,很简单

4, watch break point

同样也是在进入Debug模式下设置的一种断点,当某变量满足一定条件时停下,比如在loop中循环到第4圈时停下,

可以设置sy-tabix = 4,如下:2016-09-10_23-40-19 点击字典按钮可以查看一些常用的例子,供参考。2016-09-10_23-42-53

可以在tab页 break./watchpoints查看所有断点,包括watch point

2016-09-10_23-45-39

以上。