Frage

Ich bin eine lange Zeit Delphi Entwickler und in der Vergangenheit habe ich ein Drittanbieter-Tool für die Protokollierung verwenden und Debugging während der Entwicklung (so genannten Smart-Inspect) aber jetzt, dass ich nach Delphi XE I aktualisiert haben will, um zu versuchen und die IDE für Debuggen.

Meine Frage ist, da eine Funktion wie

procedure MyFunction;
var
    str : string;
begin
    str := 'Foo';
    //Debug, show value of str?
    str := AnotherFunction(str);
    //Debug, show value of str?
end;

Wie kann ich debuggen und den Wert von str bekommen, ohne dumme Dinge zu tun, wie     Showmessage (str);

, wenn es ein Video irgendwo (oder Artikel), dann bin ich mehr als glücklich zu lesen.

Gibt es eine Möglichkeit / Ausgabe der Wert der Variablen zu beobachten.

War es hilfreich?

Lösung

Nun, Delphi XE kommt mit Codesite Protokollierung, aber ich habe das Gefühl, Sie sprechen über den Debugger selbst.

Wenn Sie einen Haltepunkt in einer Routine platzieren, wird es an den Debugger brechen, wenn es sie trifft. Von dort haben Sie auf der linken Seite der IDE eine lokale Variablen Scheibe und eine Scheibe Uhren bekommen. Lokale Variablen den Wert aller Einheimischen zeigen, und Uhren können Sie Ausdrücke einrichten, deren Wert sie zu verfolgen.

Sie können auch etwas ähnliches wie eine Uhr, aber mit detaillierteren Informationen (insbesondere für strukturierte Typen wie Objekte) durch Untersuchen (Alt-F5) verwenden. Auch die Auswerten / Ändern (Ctrl-F7) ermöglicht es Ihnen, in Ausdrücken und zu bewerten, sie zu geben. Es ist nicht ganz so detailliert wie Inspizieren, aber es gibt Ihnen viel mehr Flexibilität.

Wenn Sie sich mit diesen Werkzeugen vertraut machen, werden Sie mit dem Debuggen viel einfacher finden.

Andere Tipps

Wenn Sie die IDE-Debugger nur verwenden möchten, dann gehen Sie wie folgt:

  • einen Haltepunkt irgendwo setzen
  • Rechtsklick auf den breakpointr Kreis und wählen Sie „Haltepunkt-Eigenschaften ...“
  • drücken Schaltfläche „Erweitert“ um weitere Optionen anzuzeigen
  • Deaktivieren Sie die Option "Break" Checkbox
  • verwenden Sie dann „Log-Nachricht“ und „Eval Ausdruck“ Editboxen Tracewerte eingeben

Solche Nachrichten werden zu „Event Log“ Debugger Fenster gesendet. Rechtsklick auf den Fensterbereich und wählen Sie „Eigenschaften“. Dort können Sie filtern ( "Nachrichten") / hilight ( "Farben"), um die Trace-Meldungen, wie Sie Whish.

1) Sie können Output Funktion zur Ausgabe Zeichenfolge zu Debug-Fenster verwenden

2) können Sie Codesite Express verwenden. Ich empfehle Video von Coderage 5 als Ausgangspunkt für die Verwendung von Codesite

Andere Antworten sind alle richtig.

Meine persönliche Lieblingstechnik (gleiche wie die Antwort von da weich) ist einen Breakpoint zu erstellen, die eine Nachricht an das Ereignisprotokoll protokolliert, die einen Wert enthält, dass ich angemeldet werden soll, und nicht wirklich „break“ (dh , die Ausführung fortgesetzt, ohne dass Sie das Run-Symbol schlagen). Dann wird jedes Mal, wenn Codezeile erreicht, ich meine Botschaft und meine Werte im Protokoll. Da ich zurück die Geschichte nachvollziehen und lesen kann, sowie die aktuellen Werte sehen, finde ich diese nützliche als nur das Debugger Uhr-Fenster.

Aber da Delphi XE Codesite enthält, können Sie gehen weit über das Ausdrucksauswertung in Stützpunkte für Sie tut. Code-Site erfordert jedoch, dass Sie Ihren Code modifizieren einige Protokollierung hinzuzufügen. Aber es ist viel besser als ein Meldungsfeld an.

Sie können auch Output (PChar (n)), um eine beliebige Zeichenfolge an den Debugger verwenden. Da diese enthalten können, was Sie wollen, ist es eine sehr schöne Art und Weise zu debuggen, aber nicht Sachen an den Endverbraucher zeigen.

In viele meine Anwendungen, ich habe einen speziellen Trace-Puffer, der kreisförmig ist (das heißt, hält es nur die letzten 500 oder so Linien). Wann immer ich ein Problem zu sehen, nicht nur, dass ich einen Stapel Zurückverfolgungs, ich auch speichern, die in-memory Trace-Protokoll, so dass ich eine gewisse Geschichte auf, was los war, kurz bevor mein Problem.

Sie können auch die Log 4 Delphi Projekt.

ziehe ich Debugger Hinweise. Nach dem Bruch mit dem Debugger bewegen Sie die Maus auf die „str“ überall in Ihrem Code, und Sie werden den aktuellen Wert sehen. Sie können auch eine Aussage von einer Maus markieren und bewerten sie. Zum Beispiel Highlight "AnotherFunction (str)" und legen Sie die Maus über sie.

Nichts falsch mit einem der anderen Antworten, aber ich wollte nur diese nützlichen Funktionen hinzuzufügen.

procedure DebugString ( const s : string ) ; overload ;
begin
  {$IFDEF DEBUG}
  OutputDebugString ( PChar ( s ) ) ;
  {$ENDIF}
end ;

procedure DebugString ( const s : string ; args : array of const ) ; overload ;
begin
  {$IFDEF DEBUG}
  OutputDebugString ( PChar ( Format ( s , args ) ) ) ;
  {$ENDIF}
end ;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top