Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Object-Pascal / Delphi-Language (https://www.delphipraxis.net/35-library-object-pascal-delphi-language/)
-   -   Delphi Im Debugger anhalten ohne Breakpoint (https://www.delphipraxis.net/35029-im-debugger-anhalten-ohne-breakpoint.html)

MaBuSE 1. Dez 2004 16:47


Im Debugger anhalten ohne Breakpoint
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz