AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Debugger - Befehlzeile nicht ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

Debugger - Befehlzeile nicht ausführen

Ein Thema von Pfaffe · begonnen am 9. Jun 2016 · letzter Beitrag vom 13. Jun 2016
Antwort Antwort
Seite 1 von 2  1 2      
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#1

Debugger - Befehlzeile nicht ausführen

  Alt 9. Jun 2016, 15:12
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.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Debugger - Befehlzeile nicht ausführen

  Alt 9. Jun 2016, 15:45
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
var gCallLine: Boolean = True;
die Zeile kapseln
Delphi-Quellcode:
if gCallLine then
begin
  Inc(I);
end;
und zur Debugtime gCallLine überschreiben.

Vielleicht taugt das als Notlösung.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Debugger - Befehlzeile nicht ausführen

  Alt 9. Jun 2016, 15:52
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#4

AW: Debugger - Befehlzeile nicht ausführen

  Alt 9. Jun 2016, 16:38
Man kann natürlich in der CPU-Ansicht den EIP ändern und auf eine andere "Code"-Stelle setzen. (Strg+N, siehe Kontextmenü)

Ich war mir fast sicher, daß sowas auch sich des Quellcodes ging.
Aber im Notfall einfach ein if EineVariable then und im Debugger kannst du ja den Varriableninhalt ändern.

Oder meinst du sowas wie if not IsDebuggerPresent then , was den Code nicht ausführt, wenn es im Debugger läuft ?
MSDN-Library durchsuchenIsDebuggerPresent
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Debugger - Befehlzeile nicht ausführen

  Alt 9. Jun 2016, 17:27
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#6

AW: Debugger - Befehlzeile nicht ausführen

  Alt 9. Jun 2016, 17:41
Ohh stimmt, also hier in XE(1).
Mal was Neues.

Im Kontextmenü gibt es was, auch wenn es hier irgendwie immer deaktiviert ist.
Miniaturansicht angehängter Grafiken
unbenannt.png  
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Debugger - Befehlzeile nicht ausführen

  Alt 9. Jun 2016, 17:55
Natürlich ist das möglich!
Wahnsinn, das war mir vollkommen neu. Cool!
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.611 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Debugger - Befehlzeile nicht ausführen

  Alt 9. Jun 2016, 21:02
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.
Vorher ging das auch schon per Editor-Kontextmenu -> Debug -> Set Next Statement (seit Delphi 2006).

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..
Thomas Mueller
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Debugger - Befehlzeile nicht ausführen

  Alt 10. Jun 2016, 09:45
Natürlich ist das möglich!
Wahnsinn, das war mir vollkommen neu. Cool!
Mega geil, oder?
Habe ich auch erst letzten Herbst zufällig entdeckt.
Erleichtert das Leben enorm.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#10

AW: Debugger - Befehlzeile nicht ausführen

  Alt 10. Jun 2016, 11:14
Und ich hab da immer ein if DebugHook <> 0 reingefummelt...

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:12 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