Ich ändere unsere VCL-Komponenten so, dass die Anwendung des Endbenutzers auf unsere dcu-Dateien verweist, anstatt unseren Quellcode jedes Mal zu erstellen. Wir haben alles funktioniert, aber ich möchte, dass der Debugger den Code des Benutzers stoppt, wenn eine Ausnahme ausgelöst wird. Zuerst würde es in unserem dcu anhalten und das CPU-Fenster öffnen. Ich konnte das verhindern, indem ich Debug-Informationen aus den dcu-Dateien löschte. Aber jetzt hört es immer noch nicht im Benutzercode auf (wie DevExpress-Bibliotheken und andere).Korrekte Delphi-Compiler-Schalter zum Anhalten im Benutzercode, nicht
Der folgende Screencast ist ein kurzes Beispiel. Das erste Mal, dass ich eine Ausnahme im DevExpress-Code verursache und der Debugger korrekt in meinem Button-Event stoppt. Das zweite Mal, dass ich eine Ausnahme in meinen Komponenten verursache, aber der Debugger hat mein Button-Ereignis nicht im Call-Stack und zeigt mir nicht, wo das Problem war. Irgendwelche Ideen warum?
http://screencast.com/t/NjhlOTRk
Zur Zeit der DCU des mit diesen Optionen Aufbau:
-$W+ -$D- -h -w -q
Update: Die TDataSet Methoden zwischen meiner Komponente und der Schaltfläche Ereignisse scheinen, dieses Verhalten zu verursachen. Wenn ich stattdessen eine direkte Methode meiner Tabelle aufruft, bekomme ich das erwartete Verhalten. Ich vermute, dass ich nichts dagegen tun kann, aber ich bin immer noch neugierig, warum es passiert.