Even with an external break-point, it is not always possible to trigger the debugger for update task.
The tip is to use infinite loop in your code executed in update task, to prevent the code to be debugged from execution, and then, trigger the debugger from SM50.
Infinite loop :
" ==========================================================
" Infinite LOOP to retrieve debug in SM50 (background tasks)
" ----------------------------------------------------------
DATA lw_x TYPE char1.
IF sy-uname = 'USERNAME'. " <== Not not lock everybody
WHILE lw_x IS INITIAL.
ENDWHILE.
ENDIF.
" ==========================================================
Read More