开发基础 报表教程 数据字典 对话编程 表单打印 增强出口 SAP接口 S/4 HANA
实战案例 实战笔记 资料下载 CRM
问答互助 会员分享 俱乐部 广告区
论坛指南、建议和投诉
Twilight发表于 2015-02-09 17:54Twilight 最后回复于 2015-02-09 17:54 [复制链接] 11111 0
使用道具 举报
Twilight
管理员
发表回复 回帖后跳转到最后一页
一、 静态断点(Static Breakpoints) 是程序员在程序中用代码设定的, 当程序运行到该断点时, 会进入调试状态.
语法:
break-point.
也可以将其标号以明确其位置.
break-point 1.
...
break-point 2.
如:
break username.
如:
将“用户名”换成你登陆的用户名
二、动态断点
在ABAP编辑器中有两个按钮用于设置断点
第一个(set/delete session breakpoint)用于设置临时断点, 该断点只有在当前Session 才有效, 若退出, 该断点则被自动取消。
第二个(set/delete external breakpoint)用于设置外部断点, 该断点在当前 Session 有效, 但在SAP退出后,重新登录运行程序时不会再执行该断点功能, 而是在原来的代码处留下一个标签, 必须手动删除, 而且也有时间的限制。
三、调试方法
F5 为单步执行, 程序逐步执行, 若遇到子程序或函数, 则会转入该函数中.
F6 只在本程序中单步执行, 遇到子程序或函数时会直接执行, 而不进入函数内部.
F7 会一次性执行完当前代码所在的过程, 如子程序和函数, 若在主程序中, 则直接执行完该程序.
F8 则是一次性执行完全部程序, 直到遇到下一个断点时才终止.
四、Watchpoint观察点的用法
用于设置在程序执行中遇到某个条件时才进入 Debug 状态
输入一个要观察的变量和值
设置好断点后, 按F7 或F8 程序会一直执行到Watchpoint条件满足的地方。
如果一个内表有1000条数据,你想定位的数据在第750条,输入此字段对应的值直接定位,是不是很方便呀
四、查看程序执行中的参数
在程序Debug状态下能够查看当前程序中的所有参数的值,而且还可以更改这些参数的值。
在内表数据浏览窗口的右侧还有一个工具栏, 可以通过该工具实现对内表数据的控制, 修改, 删除, 下载。
如果内表的数据特别多,而又需要分析内表里的数据,就可以通过此工具导出到Execl中,然后再数据分析,此工具还是很实用的
五、实现调试功能的其它方法
输入SM37, 找出想要Debug的job, 在job前打勾, 已经完成或是Release都可以。 在输入栏输入 JDBG,进入debug
在程序的运行界面, 控制框输入 /h
输入SM50, 找出正在运行的程序, 然后进入Debug
我们在 update task的 function里面设断点的话, 正常是进不去debug的。
我们在 debugger 里面路径 setting->Display/change debugger settings,这里面会有 update debugging 选上以后, 我们运行到update task的 function 后会自动开辟新的 session 进行debug
请参考:ABAP Debug调试Update/Background Task两种异步RFC
有些时候我们在程序运行的时候会报一些update的 error message
进入 sm13 可以找到相应的item 就可以进行 debug
在RFC所在的系统, 用RFC连接所用的用户账号去设断点,然后再进行debug
请参考:SAP如何debug远程调用的函数模块 即外部断点调试
可能有时候我们程序运行过程中会出现一些弹出窗口, 没有输入 /h 的地方, 但我们想 debug ,这时怎么办?
新建一个 txt 文档, 内容如下: 当我们需要 debug 某个窗口的时候直接把它个 txt 文档插入对应窗口即可实现 debug。
可以看到桌面产生如下一个图标,点击直接进入程序debug,实际与第7个相同
参考扩展:ABAP常用DEBUG的八种方式