![]() |
Debugger - Befehlzeile nicht ausführen
Ist es möglich, während des debuggens eine Befehlszeile zu überspringen ohne das diese ausgeführt wird, also so als wäre sie bereits vor dem compilieren auskommentiert worden.
|
AW: Debugger - Befehlzeile nicht ausführen
Nicht dass ich wüsste, aber wenn die Zeile nur eine einfache Änderung vornimmt (z.B. Inc(I)) könnte man I nach der Ausführung wieder auf den vorherigen Wert zurück setzen.
Wenn Du für Testzwecke die Zeile mal ausführen willst und mal nicht, könntest Du eine globale Variable anlegen
Delphi-Quellcode:
var gCallLine: Boolean = True;
die Zeile kapseln
Delphi-Quellcode:
und zur Debugtime gCallLine überschreiben.
if gCallLine then
begin Inc(I); end; Vielleicht taugt das als Notlösung. |
AW: Debugger - Befehlzeile nicht ausführen
Dass man den Code-Teil anpassen kann wäre mir neu.
Absolute Hardcore-Profis können bestimmt den Stack lesen und entsprechend manipulieren, aber eingebaut habe ich noch nie etwas gesehen. |
AW: Debugger - Befehlzeile nicht ausführen
Man kann natürlich in der CPU-Ansicht den EIP ändern und auf eine andere "Code"-Stelle setzen. :stupid: (Strg+N, siehe Kontextmenü)
Ich war mir fast sicher, daß sowas auch sich des Quellcodes ging. Aber im Notfall einfach ein
Delphi-Quellcode:
und im Debugger kannst du ja den Varriableninhalt ändern.
if EineVariable then
Oder meinst du sowas wie
Delphi-Quellcode:
, was den Code nicht ausführt, wenn es im Debugger läuft ?
if not IsDebuggerPresent then
![]() |
AW: Debugger - Befehlzeile nicht ausführen
Natürlich ist das möglich!
Und zwar seit irgendeiner Version von Delphi XE. Du kannst während des Debuggens den kleinen blauen Pfeil, der die aktuelle Zeile anzeigt, mit dem Mauszeiger anfassen (linke Maustaste). Dann kannst du den Pfeil per Drag'n'Drop auf eine Zeile, die ebenfalls blaue "Debugpunkte" hat, verschieben. Die Programmausführung fährt dann an dieser Stelle fort. So kannst du auch einzelne Zeilen oder ganze Abschnitte überspringen. |
AW: Debugger - Befehlzeile nicht ausführen
Liste der Anhänge anzeigen (Anzahl: 1)
Ohh stimmt, also hier in XE(1).
Mal was Neues. :shock: Im Kontextmenü gibt es was, auch wenn es hier irgendwie immer deaktiviert ist. |
AW: Debugger - Befehlzeile nicht ausführen
Zitat:
|
AW: Debugger - Befehlzeile nicht ausführen
Zitat:
Und davor gab es im Kontextmenu des CPU-Windows die Set EIP Funktion. Dazu sollte man die Mixed Ansicht (also ASM + Sourcecode) einschalten, damit man weiss, wo eine Sourcecodezeile anfaengt.. |
AW: Debugger - Befehlzeile nicht ausführen
Zitat:
Habe ich auch erst letzten Herbst zufällig entdeckt. Erleichtert das Leben enorm. |
AW: Debugger - Befehlzeile nicht ausführen
Und ich hab da immer ein
Delphi-Quellcode:
reingefummelt...
if DebugHook <> 0
Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz