Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Im Debugger anhalten ohne Breakpoint

  Alt 1. Dez 2004, 16:47
Hallo,

manchmal ist es notwendig an einer bestimmten Stelle beim Debuggen anzuhalten.
Normalerweise verwendet man dazu einen Breakpoint.

Es geht aber auch anders:
Delphi-Quellcode:
begin
  ...
  i := 0;
  asm
    int 3
  end;
  i := 1; // <- hier bleibt Delphi im Debugger stehen !!!
  ...
end;
Das Programm bringt aber außerhalb von Delphi an dieser Stelle eine externe Exception (Fehlermeldung)

Aber man könnte sich z.B. eine Procedure schreiben die Prüft ob Delphi läuft und dann int 3 aufruft.
Delphi-Quellcode:
procedure myBreakPoint;
begin
  if (DebugHook <> 0) then asm int 3 end;
end; // <- Delphi bleibt dann hier stehen.
      // 1 x F8 drücken und man ist da wo man hin will ;-)

  ...
  if i>5 then myBreakPoint;
  ...
Oder man könnte es bei der bedingten Kompilierung einsetzten:
Delphi-Quellcode:
  ...
  {$IFDEF DEBUG}asm int 3 end;{$ENDIF} // Breakpoint
  ...
In meinen Quellcodes findet man ab und zu so was:
Delphi-Quellcode:
  ...
  {$IFDEF DEBUG}if (i>5) and (DebugHook <> 0) then asm int 3 end;{$ENDIF} // Breakpoint
  ...
(i>5) ist die Bedingung bei der Angehalten werden soll.


Ich hoffe das hilft Euch
Euer
Dr. MaBuSE
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat