![]() |
Schweren Ausnahmefehler finden
Hallo DP-Gemeinde.
Mein Programm stürzt beim Endanwender mit dieser Meldung ab:
Code:
Danke. :shock:
Die Ausnahme "Unbekannter Softwarefehler" (0x06d007f) ist in der Anwendung an der Stelle 0x7c80bf93 aufgetreten.
Wir kriege ich raus, an welcher Stelle im Code der Ausnahmefehler auftritt? Ich habe versucht im CPU-Fenster an die angegebene Adresse zu springen, aber die IDE hüpft immer zur Adresse 0000000. Was mache ich falsch bzw. wie macht man's richtig? Danke und Grüße gmc |
AW: Schweren Ausnahmefehler finden
|
AW: Schweren Ausnahmefehler finden
Habe bereits
![]() Aber der greift nicht. Das CPU-Fenster im Delphi muß doch zu irgendwas nütze sein ... :pale: |
AW: Schweren Ausnahmefehler finden
.. kannst Du nicht eingrenzen, bei welcher Aktion der Fehler auftritt?
Beim: Öffnen, Beenden, User-Eingabe.... Grüße Klaus |
AW: Schweren Ausnahmefehler finden
Wenn du grob eingrenzen kannst, wo der Fehler auftritt, kannst du im Debugger durchsteppen und an der Stelle wo es abstürzt dann im nächsten Durchgang tiefer hineinsteppen.
|
AW: Schweren Ausnahmefehler finden
Oder einfach mal in verdächtigen Routinen Log-Ausgaben einstreuen:
Delphi-Quellcode:
Dann sieht man ja, wo er abbricht und kann weiter eingrenzen.
procedure Foo;
begin writeLn('Foo'); ... writeLn('End Foo'); end; Ist zwar eine recht plumpe Vorgehensweise, aber nach meiner Erfahrung häufig das effektivste bei solchen Fehlern... |
AW: Schweren Ausnahmefehler finden
Bei einer VCL-Anwendung löst das aber auch eine nette Exception aus. :angel:
Mit dem Debugger hinspringen, nachdem es schon geknallt hat, geht nunmal nicht immer gut, vorallem wenn danach alles total schief steht und der Debugger nicht rausfinden kann, wo peng machte. Besser wäre es, wenn man vor dem Knall durchsteppt und sich dabei die letze (knallende) Codezeile gemerkt hat. Oder man but sich ein Logging ein (WriteLn ins Konsolenfenster nur mit Konsolenfenster, oder doch lieber in eine Datei und im Debugger kann man auch OutputDebugString verwenden. |
AW: Schweren Ausnahmefehler finden
Die Ursache für einen "Unbekannten Softwarefehler" liegt in den meisten Fällen nicht in deinem Sourcecode bzw. Programm, sondern höchstwahrscheinlich an einem fehlerhaften Baustein des Betriebssystems oder installierter Software.
Manchmal hilft es, die neuesten Windows-Updates einzuspielen oder Explorer-Plugins zu entfernen. Es kann manchmal auch helfen, den Free-Download-Manager, Virenscanner oder ähnliche Programme aus dem Systray zu deinstallieren. Es kann auch ein defektes RAM oder Mainboard sein. Das Problem liegt also mit hoher Wahrscheinlichkeit im System deines Kunden und nicht in deinem Programm. |
AW: Schweren Ausnahmefehler finden
Zitat:
|
AW: Schweren Ausnahmefehler finden
Zitat:
Einzugrenzen gibt es da leider nicht viel, denn das Programm stürzt eher sporadisch ab. Mal hier, mal da, dann hier wieder nicht und dort auch wieder nicht. Wenn es aber abstürzt dann immer wieder an der gleichen Adresse. Exceptions, welche das Programm wirft, werden i.a.R. von Eurekalog abgefangen und geloggt. Nur eben dieser Fehler nicht, weswegen ich eigentlich gleicher Meinung bin, wie Uwe Raabe. Zitat:
Und ... mein Programm ist nicht das einzige, welches mit "kryptischen" Fehlermeldungen abstürzt. Aussage des Users: "Ach ja, das ist schon lange so. Aber das das Programm abstürzt war noch nie so!" Ohne Worte! :wall: Fehlt nur noch: "Ich habe nichts gemacht" :twisted: Vermutlich ist das auch der Grund, weswegen meine IDE nicht an die Speicheradresse springt, die ich ihr angegeben habe, denn da liegt mein Programm überhaupt nicht. Der User bekommt jetzt einen "frischen", ausgetesteten(!) PC. Danke für eure Tipps. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 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