Start debugger:
<!--[if !supportLists]-->1. <!--[endif]-->Reports: run ABAP editor (SE38), and start the debugger by clicking the ‘Debug’ button
<!--[if !supportLists]-->2. <!--[endif]-->Transaction
<!--[if !supportLists]-->a. <!--[endif]-->SE93 (Maintain Transaction): input transaction code and then ‘Transaction code à Test à Debugging’
<!--[if !supportLists]-->b. <!--[endif]-->Commands: /h, /hs (system debugging), /ha (step into ABAP code directly)
<!--[if !supportLists]-->3. <!--[endif]-->Dialog Transaction
<!--[if !supportLists]-->a. <!--[endif]-->Create transaction short cut on the desktop
<!--[if !supportLists]-->b. <!--[endif]-->Run the transaction from system, and pop-up the dialog
<!--[if !supportLists]-->c. <!--[endif]-->Drag the desktop short cut onto the dialog
<!--[if !supportLists]-->4. <!--[endif]-->Background Job
<!--[if !supportLists]-->a. <!--[endif]-->Jump into the background job via Process Overview (SM50)
<!--[if !supportLists]--> i. <!--[endif]-->SM50, then choose the process and menu: ‘Program/Mode à Program à Debugging’
<!--[if !supportLists]--> ii. <!--[endif]-->Enhance the code snippet into the code ‘DATA I TYPE I. WHILE I <> 1. ENDWHILE’, which can make sure the debug from the endless while.
<!--[if !supportLists]-->b. <!--[endif]-->Restart the background job in debug mode
<!--[if !supportLists]--> i. <!--[endif]-->SM37 (Job Overview)
<!--[if !supportLists]--> ii. <!--[endif]-->Highlight the job and enter command ‘jdbg’ (job debugging)
Breakpoints: Can set conditions on breakpoints, e.g. ‘count’
<!--[if !supportLists]-->1. <!--[endif]-->ABAP statement breakpoints (all session, all user)
<!--[if !supportLists]-->2. <!--[endif]-->Session breakpoints (the same logon)
<!--[if !supportLists]-->3. <!--[endif]-->Debugger breakpoints (only internal session)
<!--[if !supportLists]-->4. <!--[endif]-->Dynamic breakpoints
<!--[if !supportLists]-->1. <!--[endif]-->Statements: e.g. WRITE
<!--[if !supportLists]-->2. <!--[endif]-->Functions, Forms, Methods, stop at a specific module
<!--[if !supportLists]-->3. <!--[endif]-->Exceptions
Watch points: after starting debugger
<!--[if !supportLists]-->1. <!--[endif]-->Program + Field name: with conditions or not.
<!--[if !supportLists]-->2. <!--[endif]-->For internal tables: *itab[] can trace the changes on row counts, etc