Debug

Debug,在编程中的关键性不言而喻,要熟练运用好Debug中的各类技巧,需要一定的累积,作为ABAP中该项技能,在阅读和自己的实际运用的结合下,做如下的小结。


Debug ABAP高手写的关于Debug的博文,也是触发我整理改知识点的缘由。 http://scnblogs.techweb.com.cn/tcsapbw/archives/789.html


1. 两种设置breakpoint的方法:

  • Session Breakpoint:同一logon session时,该breakpoint是一直存在,即退出登录,该breakpoint消失。
  • External breakpoint :该类型的breakpoint的范围要大于前者,即重新登录,该breakpoint依然存。

2. 在code中写入breakpoint的方式

  • Break-point :与用户无关,即只要执行,就进入该breakpoint
  • Break UserID:用于相关,即只有改用户执行时,才进入breakpoint。

3.Watch point

在Debug中设置watch point主要是为了在Debug时,能设定运行条件。

在程序中,在最初的时候设置了进入debug如下:

这里,为了测试简便设置watch point在sy-subrc为14。如下:


这里,为了测试简便设置watch point在sy-subrc为14。如下:

1114

设置watch point:

1213

这里可以修改、删除等等。

然后在debug中,可以F8等,一直运行到sy-subrc = 14后的操作地方。如下,当按下F8后,停在了sy-subrc为14的地方:

149


4. 更改内表等的值

无论是修改参数还是变量,还是内表。如对参数或者变量的修改,只需要双击更改便是。这里记录下修改内表的debug内容,使用其右边的tool

154


可以的操作有:

164


5.Go to Statement的应用

在Debug中,经常会出现,已经跑到后面去了,但又想看一下前面的过程是怎么跑的。当然重新打开跑一下debug是Ok的,但重新跑debug比较费时费力。

例如现在debug已经跑到第74行:

174


但假设,想看它如何跑第45行的FM:

将光标置于45行,选择:

184

就Ok了.

(但是注意:对于已经在后面修改过的值/变量等,此时是不会还原回来的).


6. Debug附加

(1)Debug调试数据库与操作程序

在Debug下,自动commit work(隐式地进行DB commit,类似于如果不加commit work语句,当程序结束后,check数据仍然改变)

但是,如果是update FM或者perform on commit的情况,并不会自动commit work(这种情况下需要执行commit work语句)


(2)WebDynpro的Debug

调试该类型的,需要用到External Break-point。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值