SAP技术专家的ABAP调试器培训材料
首先弄清楚ABAP Classic调试器和新调试器的区别:

Classic debugger:
(1) Static breakpoint
a. BREAK-POINT : non-user specific
b. BREAK user name user specific
(2) Dynamic breakpoint
New debugger:
(1)Static breakpoint
(2)Dynamic breakpoint
a. session breakpoint
b. external breakpoint

Session 断点和External断点的区别
(1) Session BP is only visible in all external sessions belonging to the same user session, while External BP is visible across all user sessions. Therefore, only External BP is valid for BSP / Webdynpro debugging.
(2) When a user logs off, Session BP will be deleted while external BP persists.

By setting this flag, if external session A is running, and in external session B ( A and B belongs to the same user session ) you set a session breakpoint in the program source code, the BP will be triggered immediately .

ABAP独占断点(Exclusive Breakpoint)和非独占断点的区别
下图是非独占断点:

下图是独占断点:

Exclusive mode means the application to be analyzed exclusively occupies a work process of the application server during debugging. If all exclusive debug work processes are occupied, the Debugger is switched to non-exclusive mode. (rdisp/wpdbug_max_no )
Limitation for non-exclusive mode:
Due to technical limitations in ABAP debugger implementation, there are following limitations when debugger is run under non-exclusive mode:
(1) No possible to debug statement between SELECT and ENDSELECT. In this case, program terminates with this error:

(2) No possible for conversion / field exit.
(3) No possible for debugging in production system, program terminates with exception DEBUGGING_NOT_POSSIBLE.
ABAP调试器里的一些指标该如何阅读?
考虑下面这段最简单的ABAP代码:

调试器里查看A1这个类型为内表的变量:这里的[2×1(8)]是什么意思?

2: table row number
1: table column number
8: byte length of table row
The time for which the new Debugger is active is determined by the profile parameter rdisp/max_debug_lazy_time – which is set to 600 seconds in the standard version. After this time space has elapsed, the Debugger process is exited automatically and control is passed back to the application.
一些小技巧:how to debug background RFC?

解决方案:使用事务码sbgrfcmon



小技巧2:如何调试update task

小技巧3:如何使用ABAP观察点 Watch point

练习:我们进入事务码SE09时,会观察到User字段会自动被填充成当前登录用户。如何通过观察点快速找到是哪一行代码赋的值?
When we use SE09, how can we find the logic of the User? When and where is this field filled? What does content come from?
Debugging step by step will be very time-consuming.
小技巧4:使用ABAP检查组 Check group

小技巧5:事务码SRDEBUG


小技巧6:调试脚本

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

SAP技术专家的ABAP调试器培训材料的更多相关文章
- ABAP调试
ABAP 开发系列(02): ABAP Development Workbench 介绍(下)- ABAP 调试器 8. Debugger – ABAP 调试器 开发程序,调试器是必不可少的工具,而A ...
- 选择目录,选择文件夹的COM组件问题。在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。
异常: 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式.请确保您的 Main 函数带有 STAThreadAttribute 标记. 只有将调试器附加到该进程才会引发此异常. ...
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 11.调试器的设计
目 录 第十一章 调试器设计... 2 11.1 调试接口... 2 11.2 界面方式调试... 3 11.3 命令行方式调试.. ...
- 带调试器(Debugger)的ILSpy(2.2.0.1738)
2015-03-13 09:40更新: 感谢@dark89757园友提出的调试时不能查看变量的问题. 源码已修改,并提交到了github. 请查看最新发布,二进制文件和源码都在这里: 调试时可查看变量 ...
- Linux C编程学习之开发工具2---GDB调试器
简介 GDB是一个功能强大的交互式程序调试工具,主要工作在字符界面下. GDB不仅可以用来调试C/C++ 语言编写的程序,还可以用来调试 Pascal.Objective-C,以及Fortran等语言 ...
- VS2003"无法启动调试 没有正确安装调试器"的解决办法
VS2003"无法启动调试 没有正确安装调试器"的解决方法 在用VS2003做项目的时候,经常调试程序,但是有时候回出现如下问题“无法启动调试,没有正确安装调试器,请运行安装程序或 ...
- 昨天晚上画了个带apple的图:ide插件与php和xdebug通信原理图,周末写1个调试器。
昨天晚上画了个带apple的图:ide插件与php和xdebug通信原理图,周末写1个调试器.
- 总是弹出visual studio 实时调试器 三种解决办法
最近服务器老是弹出visual studio 实时调试器很是郁闷呀.关还关不掉.怎么解决呢 ,现像如下图所示: 下面我们一起来分析一下这种情况的原因: 弹出应用程序: Visual Studio 实时 ...
- C#调试器导航
本快速入门演示如何在 Visual Studio 调试会话中导航,以及如何在会话中查看和更改程序状态. 本 快速入门适用于不熟悉用 Visual Studio 进行调试的开发人员,以及要详细了解在 V ...
随机推荐
- 修改Windows远程桌面端口
要修改注册表中的两处 PortNumber 1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdp ...
- SpringMVC的数据回现
一.什么是数据回显 数据提交后,如果出现错误,将刚才提交的数据回显到刚才的提交页面. 二.pojo数据回显方法 1.springmvc默认对pojo数据进行回显. pojo数据传入controller ...
- 阿里云API公共参数的获取
阿里云公共参数API https://help.aliyun.com/document_detail/50284.html?spm=5176.10695662.1996646101.searchcl ...
- java/resteasy批量下载存储在阿里云OSS上的文件,并打包压缩
现在需要从oss上面批量下载文件并压缩打包,搜了很多相关博客,均是缺胳膊少腿,要么是和官网说法不一,要么就压缩包工具类不给出 官方API https://help.aliyun.com/documen ...
- [跨域]跨域解决方法之Ngnix反向代理
跨域原理:http://www.cnblogs.com/Alear/p/8758331.html 介绍Ngnix之前,我么先来介绍下代理是什么~ 代理相当于中间人,中介的概念 代理分为正向代理和反向代 ...
- wcf datetime json format
wcf 内置的json序列化工具,有时需要替换,或者特殊情况的处理,需要修改. 我也遇到了Dto属性类型是datetime,json的反序列化 和 序列号不友好. 这是国外网站的一个方案:Replac ...
- Firebird SEQUENCE
Firebird3 以后可以有自增列,也可以类似Oracle.Postgresql手动添加序列,产生新值,灵活操作. 创建序列: INCREMENT ; 修改序列最大值: ; 产生新值: 1. ) f ...
- PostgreSQL PARTITION 分区表
PostgreSQL 分区表,操作性相当便捷. 但只能在创建时决定是否为分区表,并决定分区条件字段,普通表创建后,不能在修改为分区表. Note:通过其他方法也可转化为分区表. 和其他数据库一样,分区 ...
- spring整合struts2和hibernate
1.spring 1.1 jar包 1.2 spring.xml <?xml version="1.0" encoding="UTF-8"?> &l ...
- rabbimq之死信队列
死信队列:DLX,dead-letter-exchange 利用dlx,当消息在一个队列中变成死信(dead message)之后,它能被重新publish到另一个exchange,这个exchang ...