Appearance
旧版调试模式
一、开启旧版调试
在T-CODE:SE38(ABAP 编辑器)中选择菜单Utilities→Settings。可以设置旧版调试和新版调试。首先,选择旧版调试,如[图]所示。
二、调试页面与功能
1. 转换成调试模式的方法有4种。
关键字 | 内容 |
---|---|
任何画面 | 在命令窗口上输入“h”后继续往下执行即可。这是最常用的调试方法 |
任何画面 | 在画面上选择菜单 System->Utilities->Debugging |
对象导航栏(SE80) | 打开程序或者事务码后使用菜单 Program→Test->Debugging |
ABAP编辑器(SE38) | 输入程序名,单击调试按钮查询代码后使用菜单 Program→Test->Debugging |
- 以上方法是程序开始运行就指定的,因此除了分析标准程序外不常使用。一般使用直接在程序代码中设定断点的方法。
- [图 6-2]是设置旧版调试模式后,在调试模式下运行程序的画面。
- 在实际业务中,最常用的功能键是(F5)、(F6)、(F7)、(F8)键。这几个功能键分别对应左上角的4个图标,具体功能在中进行说明。
2. 调试过程中功能键的作用
调试提供便于查询字段、表、断点、观测点等信息的GU环境。在的1号区域中,单击
Table
等功能键,会自动调整2号区域的画面字段。
3. 调试画面的上端区域按钮功能
在调试模式下选择 menu: Goto→Display Data Object,可以设置査询样式。在[图 6-2]的第2区域中显示,其功能如下图所示。
4. ABAP 调试画面中还存在如图所示的以下按钮。
三、旧版调试模式的断点
1. 断点概念与介绍
程序不用直接在调试模式下执行,可以在程序中设定断点(Breakpoint
),当程序执行至 断点所在行时,再激活调试模式。在指定位置中断程序的意思,其命名为Breakpoint
。说明了设定断点的方法。
2. 断点种类
3. 静态断点
静态断点是代码中直接输入断点的方法。在ABAP代码里需要调试的位置处追加REAK-POINT
代码。在实际业务中不常用,且适用于所有用户,因此使用时要注意。使用时用BREAK-POINT1
、BREAK-POINT2
、BREAK-POINT3
的形式注明编号使其便于区分。使用BREAK
语句指定用户,只适用于指定用户D。设置断点的代码若反映到运营系统会发生致命性错误,因此测试完毕后,切记要删除设置断点的代码。
BREAK-POINT
BREAK-POINT 1.BREAK-POINT 2
BREAK user01.
4.动态断点
动态断点不是追加代码设置断点的调试方法,而是在ABAP编辑器中利用设置断点的按钮进行调试的方法。在 ABAP编辑器和调试画面上设置,或单击Stop按钮
在指定位置设置断点。还可利用菜单:Utiliies→Breakpoints→Set/delete
选项设置断点,且可以查询程序内所有断点并删除。在 ABAP编辑器上设置的断点,在同一个会话中始终起作用。在同一个会话中,用相同 ID 追加登录时,在新的会话中不起作用。在第5章的[例 5-36]程序的 READ 语句中设置断点。要设置断点,首先要激活程序。按(CtI+F3)
快捷键或单击激活按钮激活程序。
四、设置断点
1.在调试画面设置断点
在 ABAP 调试画面上双击代码行,相应行的前面显示 Stop
图标,同时设置了断点。双击字段,则显示字段名(变量名)和值。若双击内表,则激活内表图标,单击该图标可确认内表值。
2.为指定语句设置断点
在 ABAP 调试模式下,可以为指定的ABAP语句设置断点。即输入SELECT
,在程序的所有SELECT语句中被设置断点。
3.在子程序中设置断点
输入子程序/函数/方法名字,即可设置断点。
4.在函数中设置断点
可在函数中设置断点。单击Breakpoints
按钮,可以确认追加的相应断点。执行包含此函数的程序时,在设置的断点处会中止程序。 此外,在类方法也可以设置断点。
5.控制断点
在调试模式下可以查询所有的断点信息。输入程序名和相应代码行数,程序执行到所设行数时才被激活。
五、设置观察点
1.旧版调试模式下的观察点
开发程序时,会经常遇到显示的是与预期结果值不一样的情况。或者已经用CLEAR语句
初始化了变量,却没有效果。不知道到底是在哪一步变量值发生了变化。此时使用观察点(Watchpoint)
则很容易找到原因。另外,在修改其他开发者开发的程序,或者在标准程序中追踪变量值的变化过程时,也非常有效。即观察点提供在程序执行过程中变为指定条件值时中止程序的功能。不过,观察点在程序内的结构、内表、字段值发生变化时才被激活。这是与断点最大的不同之处。
使用观察点创建按钮或者在菜单:Breakpoints→Create Watchpoint
中创建观察点。指定运算式,当满足此运算式时才激活观察点,同时在指定位置中止程序。在程序z0536中,设置结构体gsline
的字段 carrid
的值变为“AZ”时激活断点的观察点。
2.为运行中程序设置断点
已经运行或者正在后台中运行的程序可以查询相应的process 进行调试。