The ABAP Debugger is used tool to execute and analyze programs line by line. Using it we can check the flow logic of a program and display runtime values of the variables. Currently, SAP offers two types of Debuggers:

  • The Classic ABAP Debugger
  • The New ABAP Debugger

The Classic ABAP Debugger, with its old user interface and its limitations to debug certain types of ABAP program is now not in use by many new and old ABAP developers.

The New ABAP Debugger, with its state of the art and flexible user interface, can be used to debug all types of ABAP programs. It provides many new features which improve our efficiency of debugging, both in ABAP support and development.

In this article, we will learn how to use these new features and discover some tips and tricks to efficiently use ABAP debugger. 

Switching between the 'Classic Debugger' and 'New Debugger'

You can switch between both the debugger and make any one your default debugger. To do this, go to ABAP Editor (SE38)→ Utilities → Settings.

 
 

Now in the user-specific settings pop up box click on ABAP Editor tab and then click on Debugging.

 
 

Here you can select the New Debugger radio button to make it your default debugger.

 
 

External (User) Debugging

External debugging is used when we want to analyze our program which is called by an external user through HTTP such as Web Dynpro ABAP, Web Dynpro JAVA, and BSP etc. To activate external debugging we have to set external breakpoints, which can be set just like the session breakpoints by keeping the cursor on the desired code line and clicking on the 'External Breakpoint' icon.

 
 

We can also set the external user for whom the breakpoint is to be activated by going to ABAP Editor (SE38)→ Utilities → Settings, and in the 'user-specific settings' pop up box click on ABAP Editor Tab and then click on Debugging.

Here you can specify the username.

 
 

 
 

Watchpoints

Watchpoints can be used to break the execution of a program when the values in a variable changes.

This help us to go to the exact position where the variable changes. You can also specify conditions in Watchpoint and the execution of the program will break as soon as the condition is fulfilled.

To create a Watchpoint, click to the Watchpoint button in the New ABAP Debugger.

Now, in the Create Watchpoint pop up enter the variable name for which you want to create the Watchpoint.

 
 

Debugger Variants

With the help of Debugger Variant you can save the current debugger settings into the database or to a local file. These settings include breakpoints, UI customizations and other special options for debugging tools.

Next time, when you will be debugging the same application you will not have to set breakpoints again or to do all the settings again. Also, when you are working in a large team then you can also pass the debugging variants to other users.

To save the 'Debugging Variant' go to Debugger→ Debugger Session→ Save

 
 

 You can save the current debugger session either to a file or in the database.

 
 

In the Debugger Variant you can save the following components :

  1. Layout
  2. Breakpoints
  3. Settings
  4. Options

 
 

To load the saved Debugger variants go to Debugger → Debugger Session → Load

 
 

Debugging a modal window

Generally, we can activate debugging by typing /h in the command line, but what if the command line is not there?

 
 

Often you will come across modal windows and other pop-up windows command line is not present and we cannot activate debugging directly. In such cases, you can either create a SAPGUI shortcut of type 'System Command' and command '/h' or create a text file with below texts.

[FUNCTION]

Command=/H

Title=Debugger

Type=SystemCommand

To debug a modal window drag and drop the above created file over it.

 
 

Debugging Tricks

Many a times, due to an incorrect entry in a database table or a table without maintenance view we are not able to create, edit or delete a database record. In these cases we can use this debugging trick.

To do this, go to transaction code SE16.

 
 

Enter the name of your database table. Select the line which you want to process, and press the display button. Enter /h in the command line and hit enter button two times.

 
 

Now, the debugger window will open and you can see the source code. Click on the variable CODE, it will have 'SHOW' as its value.

 
 

Here you can edit this variable and set the new value based on the operation you want to perform.

By setting the variable 'CODE' with value as 'EDIT' you can edit records,

'INSR', Insert new records

'DELE', Delete records

And, 'ANVO' is for editing the record with primary keys.

 
 

After setting the variable with the required operation, hit F8. Now, you are in EDIT mode. Press save button to save the record.

 
 

The Magic of SHIFT + F12

You can use this key combination to bypass a specific line of code such as a normal sy-subrc check or an authorization check. To jump or bypass any line/lines of code all  you have to fo is just put your cursor on the desired line and then press the SHIFT + F12 key.

Some limitations of New ABAP debugger Screen Debugging

When you try to set breakpoints in screen/dialog programs, you get the message stating that debugging is not yet supported.

 
 

To get by this and debug your screen/dialog programs just switch back to the classical debugger.

 
 

ABAP Memory ID

In the new debugger it is not possible to view the used ABAP memory ID's and their content. But, in the classical debugger you can view the ABAP memory IDs by going to Go to → System Areas → ABAP Memory

 
 

来自 <http://blog.csdn.net/hackai886/article/details/8032335>

Debug Intro的更多相关文章

  1. qqmini

    QQ玩一玩最新调试方法 https://blog.csdn.net/zyw_java/article/details/83686645 LayaBox 接入QQ玩一玩 轻游戏流程 https://bl ...

  2. jmeter sampler maven项目排错记

    eclipse 创建的maven项目,引入jar包之后出现红色叹号,一直找不到原因,连main方法都无法运行,提示找不到类: 错误: 找不到或无法加载主类 soapsampler.SoapSample ...

  3. Debug with jdb

    原文地址: http://www.javaworld.com/article/2077445/testing-debugging/debug-with-jdb.html Q: How do you u ...

  4. 在mac平台运行debug.exe

    最近准备学习操作系统,想先复习一下汇编语言.因为用的是mac,而看的汇编教材(<汇编语言>王爽)使用到DOS下的debug,在网上搜了一圈发现,mac 也可以模拟运行debug. 先到网上 ...

  5. 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL

    在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...

  6. .NET Core的日志[3]:将日志写入Debug窗口

    定义在NuGet包"Microsoft.Extensions.Logging.Debug"中的DebugLogger会直接调用Debug的WriteLine方法来写入分发给它的日志 ...

  7. 设置tomcat远程debug

    查看端口占用情况命令: netstat -tunlp |grep 8000 tomcat 启动远程debug: startup.sh 中的最后一行 exec "$PRGDIR"/& ...

  8. Android NDK debug 方法

    最近又频繁遇到 NDK 的错误,记录一下debug调试的一些经验,以备后续查看 一般来说,在Android Studio中的Monitor中将过滤器的 LOG TAG 设置为 "DEBUG& ...

  9. 玩转Windows服务系列——Debug、Release版本的注册和卸载,及其原理

    Windows服务Debug版本 注册 Services.exe -regserver 卸载 Services.exe -unregserver Windows服务Release版本 注册 Servi ...

随机推荐

  1. c#如何在win7下设置IE代理的完美解决方案

    有人还发现:在window7下, 在一个进程中, 设置和取消不能都执行,---- 要么设置,要么取消. 但如果第一次运行时,只进行设置代理,退出后再进运行,只进行取消,这是没有问题的.  简单说说中医 ...

  2. 乱谈Qt事件循环嵌套

    本文旨在说明:QDialog::exec().QMenu::exec()等开启的局部事件循环,易用的背后,还有很多的陷阱... 引子 Qt 是事件驱动的,基本上,每一个Qt程序我们都会通过QCoreA ...

  3. Java元组Tuple使用实例--转载

    原文地址:http://50vip.com/35.html 一.为什么使用元组tuple? 元组和列表list一样,都可能用于数据存储,包含多个数据:但是和列表不同的是:列表只能存储相同的数据类型,而 ...

  4. 21 Free SEO Tools For Bloggers--reference

    http://dizyne.net/21-free-seo-tools-for-bloggers/ What do you think is important in a website? Yes, ...

  5. iOS App 百思不得姐

    项目介绍 仿照百思不得姐,通过看视频学习自己实践并简单总结项目开发过程中普遍遇到的问题,并且将可以用到其他项目中的分类方法进行简单总结,便于以后在别的项目中使用. 每天任务 1. 实现相应功能 2. ...

  6. Javascript教程:AngularJS的五个超酷特性

    AngularJS是一个超棒的javascript框架,不单单对于开发人员来说非常有吸引力,对于UI设计师来说也同样出色.在这篇教程中,我们将简单的介绍AngularJS几个重量级必备特性,并且介绍它 ...

  7. iOS 定位系统 知识

    最近在做考勤定位系统 总结一些定位系统的知识. 后期会出一份算法主要攻克地球坐标和火星坐标转换的 1.关于百度的火星坐标定位策略 地图SDK/定位SDK的定位策略: WIFI + 基站 +GPS 三者 ...

  8. SOA与C#

    What is SOA? SOA or Service oriented architecture is an architecture style for building business app ...

  9. Java基础知识强化之IO流笔记74:NIO之 Buffer

    Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的. 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存.这块内存被包装成NIO ...

  10. .net重启iis线程池和iis站点程序代码分享

    重启站点: /// <summary> /// 根据名字重启站点.(没重启线程池) /// </summary> /// <param name="sitena ...