MadExcept verwende ich, und es ist fabelhaft. Ich habe auch EurekaLog verwendet und finde die Funktionalität fast genau identisch, außer dass ich mehr Erfahrung und Zeit mit MadExcept habe. Aktualisierung: MadExcept 4 ist jetzt verfügbar und unterstützt sogar 64-Bit-Delphi XE2-Anwendungen und verfügt über Memory-Leak-Checking.
Wenn nichts schiefgeht, verlasse ich mich auf eine intensive Nutzung der Trace-Protokollierung. Ich habe eine TraceMessage(integer,string)-Funktion, die ich in allen meinen Anwendungen aufrufe, und wenn jemand Probleme hat, bringe ich ihn dazu, auf einen Menüpunkt zu klicken, der die Debug-Trace-Stufe auf die ausführlichste Stufe hochschaltet; so erhalte ich eine vollständige Historie von allem, was meine Anwendung getan hat, und das hat mir noch mehr als madExcept geholfen, Probleme bei Kunden zu lösen. Kunden erhalten einen Absturz, und der von madexcept gesendete Absturzbericht enthält eine (von meiner Anwendung erstellte) Protokolldatei, die automatisch angehängt wird. Ich glaube, dass man das genauso gut mit madExcept und EurekaLog machen kann. Wenn Sie ein Logging-System benötigen, können Sie Log4D herunterladen, oder Sie können Ihr eigenes schreiben, es ist ziemlich einfach.
Für immer-frei, versuchen JclDebug, die mehr Arbeit erfordert, um einzurichten, aber das hat fabelhaft für mich gearbeitet, auch.
Für Hilfe bei Heap-Problemen, erfahren Sie mehr über die Debug-Optionen von fastMM (Vollversion).
Und Sie sollten nicht vergessen, dass Delphi selbst Remote-Debugging unterstützt. Wenn Sie einen Absturz auf Rechnern in Ihrem Büro reproduzieren können, auf denen Delphi nicht installiert ist, verwenden Sie Remote-Debugging über das Büronetzwerk, anstatt eine komplette RAD Studio-Installation auf dem anderen Rechner in Ihrem Büro zu installieren. Sie könnten auch Remote Debug verwenden, um sich über das Internet mit einem Client-PC zu verbinden, aber ich habe Remote Debug noch nicht über das Internet ausprobiert, daher kann ich nicht sagen, ob es über das Internet gut funktioniert oder nicht. Ich weiß, dass Remote-Debugging über das Internet auf einem Client-PC mehr Arbeit bedeutet, da es die automatische Bereitstellung der von Ihnen erstellten EXE-Datei nicht unterstützt (diesen Teil müssen Sie selbst erledigen).
Sie können auch viele Ihrer Probleme finden, indem Sie alle Hinweise und Warnungen korrigieren und dann mit CodeHealer oder Pascal Analyzer (PAL) von Peganza durchgehen. Diese statischen Analysewerkzeuge können Ihnen helfen, echte Codeprobleme zu finden.
Wenn Sie Probleme mit der Leistung und dem Speicherverbrauch haben, sollten Sie sich die Vollversion von AQTime besorgen und damit Ihr System profilieren und beobachten. Es wird Ihnen helfen, Ihre Speicherlecks zu beheben und das Laufzeitverhalten und die Speichernutzung Ihrer Anwendung zu verstehen, nicht nur Lecks, sondern auch Engpässe bei der Speicher- und CPU-Nutzung. Einige dieser Engpässe können auch die Ursache für einige seltsame Probleme sein. Ich habe AQTime sogar benutzt, um Deadlocks zu finden, da es Ausführungsspuren generieren kann, die mir helfen, herauszufinden, welcher Code läuft, und Deadlocks zu lokalisieren. Aktualisierung: AQTime kann nicht auf anderen Rechnern als Ihrem Hauptentwicklungsrechner installiert werden, ohne die neu geänderten Lizenzbedingungen für AQTime zu verletzen. In der guten alten Zeit waren diese Bedingungen nie so restriktiv.
Wenn Sie genauere Angaben zu Ihren Problemen machen würden, könnten Ihnen andere sicher noch weitere Ideen geben, die spezifisch sind, aber alle oben genannten Techniken haben sich bei mir bewährt.