Appearance
新版调试模式
一、开启新版调试
当开发者设置断点,或在程序命令窗口中输入/h
时执行新版调试模式。 如[概述图
]所示,ABAP 程序调用调试模式会生成两个外部会话。激活调试模式时,ABAP程序将变成不可编辑状态,调试结束时,ABAP程序重新恢复为可编辑状态,同时调试模式变为不可编辑状态。这里提到的不可编辑状态,指的是用户不能输入值或不能单击按钮的行为。
二、新版调试模式的断点
新版调试的断点与旧版模式相似。在新版模式中可以同时设置多个断点。选择菜单 Breakpoint-Create Breakpoint
,弹出如下所示画面。
1.新版断点页面
此画面的上端标签页-ABAP cmnds
、Method
、Function、Form
、Exception.srce code
选择指定位置设置断点。是在程序的所有CALLTRANSACTION
、MESSAGE
命令上设置了断点。认所设置的断点效果。
2.新版调试的断点类型分类如下。
三、设置观察点
与旧版模式相同,在新版模式画面的工具栏上选择Watchpont
按钮可以创建观察点。 在[图1]
所示的 Variable 字段中输入变量,单击✔
确认按钮,即生成观察点。执行程序时指定变量值发生变化,显示 Watchpoint reached
信息的同时激活调试模式。 在新版模式下不仅能输入关系运算符,还可输入命令语句追加到条件中。单击按钮,显示输入观察点条件的字段。如[图2]
所示,设置追加变量值变化条件的观察点。
1.创建观察点
2.新版模式下追加观察点的变化条件
在 Free Condition Entry(观察点追加条件)中使用的条件语法要遵守以下规则。
abap
<Function(Variable) or Variable> Operator <Function(Variable) or Variable or Constant>
例如,当字符串变量11与12的长度变为一样时,设置为观察点,利用strlen 函数给出如下所示的条件即可设置观察点。
strlen(11)=strlen(1 2 )
再举一例,当生成内表itab第5行时,设置为观察点,追加条件如下。
Lines( itab )=5
选择按钮初始化画面后重新追加观察点。执行设置观察点的程序,到达设置观察点处时,在新版调试画面上的 Break/Watchpoint 标签页→Watchpoint标签页上选择
按钮,可以比较变量变更前/后的值。 另外利用[图 6-11]的 Watchpoint 标签页的上端按钮可以创建、修改、删除、激活断点及 观察点。
四、在所需次数时设置断点的方法
在类似于 DO、LOOP 等循环语句中设置断点,会遇到每次执行程序时都停止的问题。此时可以在所需的第n次处设置断点。当然也可以利用观察点,当sy-index 或 sy-tabix 的值变为所需次数时,设置断点。下面学习LOOP语句的时候也可以设置断点。执行程序,显示新版调试画面后移动到 Break/Watchpoints 标签页。如[图 6-12]所示然后在 SKIP 字段中输入“99”,则会跳过 99 次断点直接激活第 100 次断点。 移动到 Deskotp1 标签页,选择
按钮,可以确认跳过 99 次断点后激活第100 次断点的过程。系统变量 sy-tabix 存储内表的当前所在行数。从[图6-13]中可以确认。
五、保存及加载内部断点
分析标准程序或复杂的开发程序时,在重要地点设置断点也会耗费不少工时。此时利用保存调试会话的功能,即使 TIME OUT后重新登录系统,断点也不会消失。如[图 6-14]所示执行ABAP 调试,选择菜单:Debugger
→Debugger Session
→Save
。 如[图 6-15]、[图 6-17]所示,弹出维护调试会话窗口,选择文件。然后输入会话及文件名字,选择 Breakpoints 选项后单击保存按钮。在旧版调试模式下选择菜单:Debugging→Sessions,如[图6-16]、[图6-18]所示,弹出保存断点会话的画面。Name指的是断点保存画面的名字,Expiration Date 指的是断点保存画面的有效日。输入恰当的值后保存。在命令窗口中输入“/ex”命令,结束登录的所有SAP GUI。然后重新登录系统后,在调试模式下运行程序,选择菜单:
Debugger
→Debugger Session
→Load
。选择文件,输入文件名字后单击按钮,显示之前设置的所有断点。
在旧版调试画面上执行菜单
Menu
:Debugging
→Sessions
。在左边列表中选择Session breakpoint
后单击 Load
按钮,恢复之前设置的所有断点。