Introduction
The Blog provides step by step guide on how to debug the report programs, classes and Function modules using Eclipse ADT (ABAP Development Tool).
In this blog, we will be covering
1.How to set the Toggle Breakpoint and the Soft Toggle Breakpoint.
2.How to debug in multiple sessions
3.How to check call stack
4.How to debug update Function module
5.How to set Watchpoint
6.How to set Conditional breakpoint
7.How to set user specific breakpoint
8.How to Activate, Deactivate and Delete the Breakpoints
9.How to Add new variable to observe the values in variables tab
Toggle Breakpoint (Regular/Hard Breakpoint):
- This is the standard breakpoint type, typically indicated by a blue icon in the editor margin.
- It serves to launch a new debugging session when the program execution reaches the line where it is set.
- If no debugger session is active, encountering a regular breakpoint will automatically trigger the debugger and stop execution at that point.
To set Toggle Breakpoint, we can right click on the left vertical bar as shown
Soft Toggle Breakpoint:
- This is a specialized breakpoint type, typically indicated by a green icon in the editor margin.
- Crucially, a soft breakpoint cannot launch a new debugging session on its own.
- It becomes effective only when a debugging session is already active. If a debugger is already running (e.g., initiated by a regular breakpoint or external debugging), a soft breakpoint will then cause the execution to pause at its location.
- Soft breakpoints are often used in scenarios where you want to selectively stop execution within an already active debugging session, especially in situations with high-frequency calls or when you only want to debug specific parts of a larger process without repeatedly launching new sessions.
To set the Soft Toggle Breakpoint, we can Right click on the left vertical bar as shown
Debugging in multiple sessions
By clicking on Application run (maximum 4 debugging sessions can be opened), we can debug the same program in multiple sessions
After 4 debugging session if we again click on Application run it gives us error message at right edge of exclipse
Debugging through Call Stack
We can observe the events and navigate to the events in call stack at left side in Debug tab
Debugging Update Function Module
Click on ABAP Debugger Action icon and then click on Update Debugging.
Click on Ok to continue with update debugging.
Setting the Watchpoint
Right click on the variable and then click on the Set Watchpoint
we can observe the watchpoint for changed values
Term | Description |
Recent Value | The value of the variable before the change that triggered the watchpoint. |
Current Value | The value of the variable after the change, at the moment the debugger stops. |
For SY-INDEX = 12, the current value changed
We can check the information whether watchpoint is reached or no
Setting the Conditional Breakpoint
Right click on the toggle breakpoint and then click on Breakpoint properties
Set the condition and then click on Apply and close
Before pressing F7
After pressing F7
Setting the User specific Breakpoint
In debugging right click the toggle breakpoint and then click on Debugging Properties
Select the User radio button and provide the username and then click on Apply and close
We can observe the u symbol on toggle breakpoint
Activating, Disabling (Deactivating) and Removing (Deleting) the Breakpoints
To deactivate the breakpoint, uncheck the checkbox
To activate the breakpoint, check the unchecked checkbox
To remove the breakpoint, click on remove icon
Adding new variables such as SY-TABIX and SY-INDEX in Variables tab
To add new variable in variable tab, click on Enter variable
Enter the name of the variable (SY-INDEX) and press Enter
Conclusion
Debugging in ADT isn’t just a technical exercise—it’s a strategic advantage. It transforms reactive troubleshooting into proactive insight. With its modern interface, modular object navigation, and precision tools like watchpoints and expression evaluators, ADT empowers developers to dissect complex logic, trace runtime behavior, and optimize code with surgical clarity.