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 ...
随机推荐
- 关于echar彩色柱状图颜色配置问题
在做配置页面的时候,有这样一个需求,用户可以选择配置是单色柱状图或者彩色的柱状图,并且颜色可以自定义的 思路:首先默认构建一个一个空的图表,然后根据记录上一次操作保存过来的参数重新组建option的值 ...
- [shell基础]——变量
变量的赋值 #定义变量,注意等号两边没有任何空格 variable=#定义环境变量export variable= #双引号:可含空格.可转义特殊字符 variable=" " # ...
- js 验证字符串是否全为中文
js 验证字符串是否全为中文: function isChinese(str) { var reg = /^[\u4E00-\u9FA5]+$/; if(reg.test(str)){ return ...
- equals()重写
** 注意 ** 1.重写equals方法修饰符必须是public,因为是重写的Object的方法. 2.参数类型必须是Object. 3.重写equals方法后最好重写hashCode方法,否则两个 ...
- MySQL的四种事务隔离级别【转】
本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做 ...
- 九 ServerSocketChannel
ServerSocketChannel是一个可以监听进来的TCP连接的通道,就像标准IO的ServerSocket一样.ServerSocketChannel类在java.nio.channels包中 ...
- git版本控制的使用
特别说明:本文所有知识笔记是学习“表严肃”同学的git课程记录所得. 前辈个人网站地址:http://biaoyansu.com 特此感谢前辈! 一.git是版本控制利器 二.本地创建仓库 1.进入新 ...
- 怎样关闭占用80端口的pid为4的进程
我也被这个问题给纠结了好几天.重装系统都三次了.终于找到原因了:我用的是sqlserver 2008;解决方法:window-sqlserver 2008-配置工具-sqlserver 配置管理器 找 ...
- SQLServer导入大sql文件报错 对 COM 组件的调用返回了错误 HRESULT E_FAIL。 (mscorlib)
打开cmd执行(d:\script.sql为sql文件位置): sqlcmd -S 127.0.0.1 -U sa -P sa -i d:\script.sql From:https://ww ...
- JS Event 鼠标拖拽事件
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...