
From the ABAP Debugger, you can set the debugging mode and the system behavior in the event of a kernel warning by choosing Settings.
System Debugging
If you set this option, the Debugger is also activated for system programs (programs with status S in their program attributes). When you save breakpoints, the System Debugging setting is also saved.
Update Debugging
Update function modules do not run in the same user session as the program that is currently running in the ABAP Debugger. These function modules are therefore not included in debugging. Only if you select the Update Debugging option can you display and debug them after the COMMIT WORK.
Always Create Exception Object
The following functions are supported for class-based exceptions:
If the INTO ref addition is missing in the CATCH statement, you can create an exception object in the Debugger by choosing Settings.
As soon as en exception is raised, an appropriate message appears in the status bar of the current screen. Two additional icons appear in the field display screen: Display Exception Object and Statement that Caused the Exception.
When you choose Display Exception Object, the attributes and interfaces of the exception class are displayed together with their contents. The text description key that is assigned to the exception, is displayed as a Quickinfo with the name of the constant that was generated for this key. So, for example, READ_ERROR or WRITE_ERROR is displayed as Quickinfo for the attribute TEXTID with an exception of type CX_SY_FILE_IO, depending on whether the exception occurred while reading or writing.
When you choose Statement that Caused the Exception, the line of the source code containing the statement that caused the exception is displayed. The statement is marked explicitly in the source code.
Memory Monitoring
If you choose the Settings pushbutton and select the Memory Monitoring radio button, or if you choose the menu , the system will inspect the roll area of the current mode after every ABAP statement. This allows you to check whether neighboring memory areas have been overwritten.
Checking Sort Before READ BINARY SEARCH
If you checked this function, the system checks whether the internal table is sorted before every execution of this statement. If the table is not sorted, a runtime error occurs. However, you should only activate this setting shortly before reaching a relevant point in the source code, because there can be a significant loss in performance, depending on the table size.
Checking Sort Before PROVIDE
If this function is selected, the system, during execution of the long form of the PROVIDE statement, checks all the tables involved for sorting and overlapping intervals and not just the area specified with extlim1 and extlim2.
Automation Controller
This Debugger option controls the way in which requests to automation objects (Automation Server and GUI controls) are processed.
If the option is not set, the requests are processed as they would normally be in the ABAP program. Requests with the NO FLUSH addition are not processed until
An explicit flush occurs
A request is processed that does not have the NO FLUSH addition.
If you select this option, all requests are processed synchronously, regardless of any NO FLUSH additions.
This helps you to find errors. If an error occurs when the automation queue is being processed, the synchronous request processing option allows you to identify the request in which the error occurred.
Enabling this option dramatically affects the runtime of the program, since the ABAP program cannot continue processing until the request has been executed by the receiver. You must bear in mind that the receiver -the automation server or control on the presentation server -may be linked using a slow WAN connection.
For further information, refer to ABAP as an OLE Automation Controller.
In Background Task: Do not Process
When you debug a program that calls function modules using the IN BACKGROUND TASK addition, they are processed in a background work process (additional internal session). If you set the In background task: Do not process option, the system collects the function calls, but does not start the background work process. The Debugger assigns a transaction ID, which identifies the background work process uniquely. You can now start the Debugger for the background work process using transaction SM58. You can select the function module concerned here, and then execute it via the Edit menu.
Runtime Warnings
The profile parameter abap/warnings controls the behavior of the ABAP System when a kernel warning occurs. You can display and change it using Transaction rz11. The Debugger also allows you to override the default setting of this parameter during your debugging session by choosing one of the following three options:
Log Wwarnings: Any warnings that occur are recorded and listed in the Debugger under Settings.
Stop at warning: The system stops processing in the line of the program in which the warning occurred.
Dump at warning: The system triggers a short dump when a warning occurs.
You can display the last runtime error that occurred by choosing . You can also use the transaction last_shortdump.
Validity of Settings
The settings in the ABAP Debugger have a different validity:
The settings System and Update Debugging, Always Create Exception Object, and Memory Monitoring are valid in external sessions.
The settings System Debugging and Always Create Exception Object are saved when breakpoints are saved and are then valid in this user session. These settings are also copied to HTTP and Update sessions.
The settings Check Sorting before READ BINARY SEARCH, Check Sorting before PROVIDE, Automation Controller: Always Process Requests Synchronously, and In Background Task: Do Not Process are only valid in internal sessions.
The settings for runtime warnings, that is Log Warnings, Stop at Warning, and Dump at Warning are valid for the entire user session.
For more details on sessions and user sessions, refer to Modularization Techniques in the ABAP keyword documentation.