Debuggen der Delphi-Anwendung in keiner Entwicklungsumgebung

8

Ich versuche, WinDBG oder einen anderen Debugger zu verwenden, um eine CodeGear Delphi 2007 Windows-Anwendung auf einem Remote-Computer zu debuggen. Ich konnte keine Symboldateien für WinDBG erstellen.

Gibt es eine Möglichkeit, WinDBG oder einen anderen Debugger zu verwenden, um Delphi-Anwendungen auf einem System zu debuggen, das die IDE nicht enthält?

Bearbeiten1

Der Remote-Debugger ist hier keine Option. Ich bin in der Lage, in den Endbenutzer-PC zu remote, aber ich kann den Remote-Debugger aufgrund Firewall-Einschränkungen nicht verwenden.

Bearbeiten2

Ich bin zwar in der Lage, in den Computer zu gelangen, kann aber den CodeGear-Remote-Debugger aufgrund von Firewall-Einschränkungen nicht verbinden.

    
Dustin Venegas 19.02.2009, 15:27
quelle

7 Antworten

0

Danke allen für die tollen Vorschläge und interessanten Produkte.

Um dieses spezifische Problem zu lösen, verwendet der "beste" Weg den OutputDebugString im Windows -Namespace. Zusammen mit Debug-Ansicht von Sysinternals kann ich Debug-Informationen sammeln und sortieren ziemlich schnell.

Wenn Sie sich für diese Methode entscheiden, stellen Sie sicher, dass alles in ANSI-Formatierung eingeschlossen ist. IE:

%Vor%

Dies stellt sicher, dass string1 und string2 kombiniert und dann in ANSI-Zeichen konvertiert werden.

Ich hätte wahrscheinlich gerade begonnen, Text in eine Datei für etwas schnell und schmutzig zu dumpen, aber dies wird es einer nicht-debuggenden Version erlauben, Debugging-Nachrichten auszugeben.

    
Dustin Venegas 20.02.2009, 14:45
quelle
5

Wie wäre es mit dem Remote-Debugger? Erstellen Sie Ihre App mit Remote-Debug-Symbolen und debuggen Sie von Ihrem Entwicklungscomputer über das Netzwerk.

    
Bruce McGee 19.02.2009 15:36
quelle
5

statt dessen verlasse ich mich auf die Traceüberwachung von MadExcept und einige Protokollierungsfunktionen. meine Anwendung wird weltweit vertrieben & amp; das hat genügt.

    
X-Ray 19.02.2009 17:42
quelle
4

Sie können versuchen, eine Map-Datei zu generieren und diese dann mit map2dbg in eine dbg-Datei zu konvertieren Ссылка

Dann können Sie die dbg-Datei in WinDbg laden.

Disclaimer: Ich hatte ein ähnliches Problem, aber ich konnte Remote Debugging durchführen und musste das alles nicht machen. Ich bin mir also nicht sicher, ob das funktioniert. Aber wenn Sie es versuchen, dann lassen Sie uns wissen, ob es funktioniert.

    
user9977 19.02.2009 20:04
quelle
2

Ich fürchte, das ist eine weitere dieser "Ich habe keine wirkliche Antwort" Antworten, aber es könnte nur helfen ...

Haben Sie darüber nachgedacht, Ihrer Anwendung Protokollierung hinzuzufügen? Ich habe tolle Dinge über SmartInspect gehört. Mit ihm können Sie alle Arten von Informationen protokollieren, einschließlich Stack-Traces und "Watches" (Variablen).

Ein anderes Protokollierungsprodukt für Delphi ist EurekaLog .

    
onnodb 19.02.2009 21:37
quelle
1

In Delphi könnte man Run - & gt; Attach to Process, wählen Sie den Remote-Computer und wählen Sie den Prozess, den Sie debuggen möchten.

    
Lieven Keersmaekers 19.02.2009 15:36
quelle
0

Ссылка kann verwendet werden, um die TDS-Debug-Dateien von Delphi in DBG-Dateien zu konvertieren. Dies gibt grundlegende Symbolinformationen - Funktionen, Klassen, Einheiten, aber keine Variablen. Genug für einen vernünftigen Aufruf-Stack und mit ein wenig Wissen genug, um Delphi-Apps live und mit Dumps zu debuggen.

Ich habe über einige Delphi + WinDBG-Erfahrungen in meinem Blog geschrieben: Ссылка

    
Marc Durdin 29.11.2015 22:31
quelle

Tags und Links