当前位置: 代码迷 >> 综合 >> SAP-ABAP-基础-如何调试程序,debug模式下的一些按钮
  详细解决方案

SAP-ABAP-基础-如何调试程序,debug模式下的一些按钮

热度:0   发布时间:2023-12-13 04:18:08.0

1.找程序名

1.1通过事物代码找程序名称

一般遇到问题都能知道哪个事物代码,已知事务代码可以通过SE93查找对应的程序名称

也可以通过事务代码进入程序之后点击 系统-->状态找到对应的程序

 

1.2通过后台表搜索查询名称

事务代码SE16N对表TRDIRT限制程序名Z*查询自开发查询,限制标题查询关键字就能查询出哪些程序满足条件,然后再自己一个个排除

1.3进入程序包查找

事务代码SE80,选择package然后查找Z*可以弹出系统存在的包名称,根据描述及模块双击进入开发包

点开程序,就能看到包里面所有的程序,按照描述就能找到程序名称了

 

 2.进入调试模式

2.1进入程序打断点

通过第一步得到程序名称后进入事务代码SE38,输入程序名称点击显示,进入程序代码。如下图 点击左边黄色区域可以打断点 

也可以点击按钮打断点,如下图鼠标点击了第八行代码,光标在跳动时候,可以点击上方框住的按钮打断点,第一个是普通断点,与上面一样 ,第二个按钮是远程按钮,用来调试接口

2.2输入/h执行程序进入调试模式

输入框输入/H然后按回车可以直接激活调试模式,再进行的下一步操作都会进入调试模式,比如输入事务代码和点击按钮

2.3调试后台作业

 有时候一些SM37的后台作业报错了需要调试可以再进入后台作业清单后,鼠标单击选中需要调试的后台作业,再输入框输入JDBG然后回车,直接就进入了调试界面

2.4.正在运行的程序进入debug 进入sm50 找到需要进入debug的 process 然后点工具栏 管理-->程序-->调试,进入调试界面

 2.5 call function in update task的debug 我们在 update task的 function里面设断点的话 正常是进不去debug的 我们在debugger里面 路径 setting-> Display/change debugger settings 这里面会有 update debugging 选上以后 我们运行到 update task的function 后会自动开辟新的session进行debug

2.6 sm13 error message的debug 有些时候我们在程序运行的时候会报一些update的 error message 进入sm13可以找到相应的item 就可以进行debug

2.7 远程RFC的Debug 在RFC所在系统 用RFC连接所用的用户账号去设断点 然后再进行debug就可以了 

 2.8针对一些弹出窗口的debug 可能有时候我们程序运行过程中会出现一些弹出窗口 没有输入/H的地方,但是我们要debug怎么办? 新建一个txt文档 内容如下, 当我们需要debug某个窗口的时候直接把这个txt文档拖入对应窗口即可实现debug [FUNCTION] Command=/H Title=Debugger Type=SystemCommand

将这个文件拖到弹出式窗口,方法:点windows工具栏上的“桌面”图标,最小化所有打开的窗口,将创建的文件拖到windows工具栏上的弹出式窗口,OK,就进入程序调试了

 3.调试界面及按钮介绍

按照上面两步进入调试模式后,界面如下图

3.1如何查看变量

双击变量,在变量区可以看到程序运行到当前行时的变量参数

如果变量是个表和结构,还可以双击进去看看具体每行是什么数据

 双击表LT_DATA

双击第一列行那列可以具体看到这一行的所有参数如下图LT_DATA的第一行 

点击列表按钮可以alv显示列表

双击某行或者点击左上角按钮可以跳转至具体参数

除了查看表数据也可以双击结构LS_DATA查看结构数据

 3.2

从右往左的四个按钮快捷键分别是F5,F6,F7,F8。四个按钮都是让程序往下一步运行

F5是单个步骤,就是一行一行执行,遇到perform,函数,方法,程序都会进入具体的代码

F6是下一行执行,遇到perform,函数,方法,程序都会执行完,不会进去

F7是执行完当前perform,函数,方法,程序。

F8是执行完,到下一个展示界面

以上遇到了断点都会停下来

步骤大小按钮有两种模式,默认是单行模式,单机可以改成子语句模式,这种模式下遇到了一行代码里面有多个子语句时会一个子语句一个的运行,如下图

 按钮 可以用来打断点,在执行程序时遇到一些循环太多了,想跳过找个循环,可以用找个临时断点按钮,把断点打到循环下面然后按按钮F7/F8执行到下一个断点

按钮 也算是一种断点,可以设置变量是变量的数值 ,当该变量等于设定的数值时,程序停下来,如下图,我设定了变量LS_DATA-HKONT = 5101140300,当程序在执行循环是会循环到满足该数据然后停下来

 按F7/F8到达监控点

3.3断点/监控点页签, 其他页签跳过,点一点就知道是干嘛用的了,这里重点讲一讲断点/监控点页签

创建消息类断点,当程序遇到报错,不知道什么原因,想快速定位位置时可以使用消息类断点

 监控点页签,刚刚讲的监控点也可以在这找到,可以在这里删除,或者新建新的监控点

 3.4工具服务 按钮位置如下图

 功能菜单如下图

  列表按钮,以alv展示列表

 将列表导出,可选excel等格式

  上面导出功能有个的选项,作用是为了下载上载文件的模板,这个按钮可以修改整个内表的数据,用来后续调试

  这三个按钮都是查询表中具体数据用的

 修改表中列的位置,也可以直接拖动

 选中一行只后点击该按钮可以直接修改这行数据

 其他按钮都是名字所示功能,可以自己尝试一下

  相关解决方案