Hallo Wolfgang, genauso rufe ich diese Kernelfunktion auch auf.
(Und zum Schreiben mit ID 'MODE' FIELD 'W'.)
Probier mal 2 Sachen:
1. mit W eine leere itab wegzuschreiben.
(Ich fürchte aber, das wirkt wieder nur für die, die nicht während der Debug-Sitzung gesetzt wurden, sondern z.B. per SE38 (oder mit meinem Programm
)
2. mit W eine itab mit 30 Break-points (im Kernel hart kodierter Max-Wert.)
Danach mit R in eine 2. itab lesen und prüfen, ob alle diese 30 Break-points gesetzt werden konnten (das Limit wirkt auf die Summe der im Debugger gültigen Break-Points.
(Daher die Break-Points in einem rahmenprogramm setzen, das zur Liste der geladenen Programme gehört, am besten also SY-REPID.).
Wenn nicht alle 30 Break-Points gesetzt werden konnten, hat der User noch welche im Debugger gesetzt.
Wenn ja, kannst Du ansxchließend wieder mit W eine leere itab übergeben.
Break-Points können nur auf ausführbare Anweisungen gesetzt werden, also nicht auf CASE, sondern z.B. auf WHEN.
(vielleicht baust Du ja in Dein Rahmenprogramm eine Dummy-Form mit 30 ausführbaren Anweisungen ein und übsst ein wenig.
Es gibt da auch noch einen FB SYSTEM_DEBUG_BREAKPOINTS, den ich in einem meiner Programme verwende.
Falls ich morgen mehr Zeit habe, melde ich mich noch mal mit mehr Details.
Frank