Breakpoints

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Breakpoints

Postby Jessy5246 » Wed Jan 29, 2003 6:29 pm

Hi there:
Black Adept's logic for breakpoints works well (see posting thread 'Passwords, not USR02') for static breakpoints. Does anyone know a way to detect dynamic breakpoints as well? If I go to debug and set a breakpoint, it is not returned in the list. Somehow the debugger knows those, so it must be possible to find them, right?

Regards,
Wolfgang
Jessy5246
..
..
 
Posts: 23
Joined: Tue Dec 03, 2002 8:20 pm

Postby Willy1492 » Wed Jan 29, 2003 9:13 pm

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
Willy1492
....
....
 
Posts: 581
Joined: Tue Dec 03, 2002 4:44 pm

Postby Jessy5246 » Wed Jan 29, 2003 11:52 pm

Moin Frank:
Thanks, that may work. But I really just want to read, not write break-points. I don't want to interfere, but I want to detect whether someone may be reading the data in debug mode. As you know, this is mostly related to open passwords or text before the encryption or after the decryption. It may also come in handy for other purposes.

Well, I'll just wait until you are bored and find a solution. I promise though, that I already pressed F1 and tried a few things on my own. :-)

My biggest hope is, that there is another C call - or the same one with different parameters - to get that information. I wonder whether the debugger can be traced via ST05 or other to find out the C call.

A bit more detail on what I want to achieve, in case it helps:
- I want to allow debugging up to a certain point.
- Then I want to disallow debugging for a certain section, where I use sensitive data.
- Then I want to allow debugging again - by that time the sensitive data is cleared again.
- I am mostly worried about someone bypassing the checks and getting to the data anyway. Of course, I am aware that someone could 'clone' the program and disable the checks. But I will worry about that later. In production, this would not be an issue, unless the whole company consists of hackers and allows cloning there.

Regards,
Wolfgang
Jessy5246
..
..
 
Posts: 23
Joined: Tue Dec 03, 2002 8:20 pm


Return to ABAP® Core

Who is online

Users browsing this forum: No registered users and 17 guests