![]() |
Delphi 12 Abbruch bei Fehler
Hallo, ich bin am Testen der Delphi 12 Trial Version.
Was mir auffällt ist, dass bei einer Exception das Programm sofort abstürzt (schließt), was ich bei der selben Exception unter der Delphi Version 11.3 nicht habe. Da kann ich nach einer Exception-Meldung weiter arbeiten, das Programm bleibt offen. Ich denke dass man dies irgendwo einstellen kann, nur ich habe nichts dergleichen gefunden. Was denkt ihr? LG Harry |
AW: Delphi 12 Abbruch bei Fehler
Hi,
Please download EXE Explorer from ![]() Grab both MANIFEST and compare them, also it will be nice to share your findings with us here. Might give some insight. |
AW: Delphi 12 Abbruch bei Fehler
The first one which is Delhi 12 has this Properties:
RVA = 0x00C9AF70 Offset 0x0038BB70 Size 1495 B Entropy 5,259 The first one which is ok with Delhi 11.3 has this Properties: RVA = 0x00C8CC68 Offset 0x00396468 Size 1803 B Entropy 5,271 I don't know what to do with these data. |
AW: Delphi 12 Abbruch bei Fehler
Solltest du > ASLR (Address Space Layout Randomization) unterstützen auf True gesetzt haben, versuche es mal mit False.
Die Einstellung findest du in den Projektoptionen unter Delphi-Compiler -> Linken. Ich hatte auch das Problem, wenn ich eine uralte OCX verwendete. Die Anwendung wurde dann beim Laden der OCX ohne Fehlermeldung beendet. |
AW: Delphi 12 Abbruch bei Fehler
Liste der Anhänge anzeigen (Anzahl: 1)
MANIFEST file/data ???
Anhang 56596 |
AW: Delphi 12 Abbruch bei Fehler
Die Frage ist auch: was macht dein Program, was zur Exception führt?
|
AW: Delphi 12 Abbruch bei Fehler
Unabhängig davon, was den Effekt verursacht, ist das größte Problem doch eher, dass du offenbar keine Fehlerbehandlung für solche Exceptions eingebaut hast. Wenn man diese behandelt, ist es egal, was im Falle einer Nichtbehandlung passiert.
Sinn macht es z.B., wenn du alle erwarteten Exceptions lokal abfängst, zusätzlich aber alle nicht erwarteten global (z.B. Application.OnException) behandelst und entsprechende Logs schreibst. |
AW: Delphi 12 Abbruch bei Fehler
Zumindest in der RTL/VCL ist sowas eigentlich überall abgefangen, dass Exceptions das Programm sofort beenden.
-> VCL-Events, Messages und TThread Eine Englosschleife/Deadlock im Mainthread können ein AppHang auslösen, wo Windows irgendwann fragt, ob das Programm beendet werden soll, und ansonsten könnte ein Stackoverflow (meist eine endlose Rekursion) dafür sorgen, dass die Delphi-Fehlermeldung auch keinen Speicher mehr bekommt und dann am Ende die Folge-Exception doch bis zum Windows durchrauscht, was das Ende des Prozesses bedeutet. (aber normal ist nahezu überall ein Try-Except drumrum) |
AW: Delphi 12 Abbruch bei Fehler
Zitat:
Könnte hilfreich sein zu wissen, wie er um die Standard Exception Behandlung der VCL/FMX/RTL für nicht anderweitig behandelte Exceptions drumrum kommt... |
AW: Delphi 12 Abbruch bei Fehler
Die Einstellung ASLR auf false hat nichts gebracht. Es sind sporadische Fehler soweit ich das feststellen konnte.
Z.B. einmal bei einer SQL Abfage nach einer Dokumenten-Nr., da wurde das Programm automatisch nach einer Exceptionmeldung sofort beendet. Nach dem Neustart des Programms und der Eingabe der gleichen Dokumentennummer lief das ganze einwandfrei. Da kann ich zig mal irgendwelche Pseudonummern oder Zahlen+Strings eingeben, da passiert nichts was eine Exception hervorrufen könnte. Ist also nicht reproduzierbar. Hat sich was in Bezug auf dessen irgendetwas von 11.3 auf Delphi Version 12 geändert, was man event. beachten muss? LG Harry |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz