Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Schweren Ausnahmefehler finden (https://www.delphipraxis.net/181356-schweren-ausnahmefehler-finden.html)

gmc616 8. Aug 2014 11:27

Schweren Ausnahmefehler finden
 
Hallo DP-Gemeinde.

Mein Programm stürzt beim Endanwender mit dieser Meldung ab:
Code:
Die Ausnahme "Unbekannter Softwarefehler" (0x06d007f) ist in der Anwendung an der Stelle 0x7c80bf93 aufgetreten.
Danke. :shock:

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

Klaus01 8. Aug 2014 13:00

AW: Schweren Ausnahmefehler finden
 
Hallo,

madExcept könnte da recht hilfreich sein.

Grüße
Klaus

gmc616 8. Aug 2014 14:25

AW: Schweren Ausnahmefehler finden
 
Habe bereits EurekaLog mit ein kompiliert. Scheint wohl etwas ähnliches zu sein.
Aber der greift nicht.

Das CPU-Fenster im Delphi muß doch zu irgendwas nütze sein ... :pale:

Klaus01 8. Aug 2014 16:11

AW: Schweren Ausnahmefehler finden
 
.. kannst Du nicht eingrenzen, bei welcher Aktion der Fehler auftritt?
Beim: Öffnen, Beenden, User-Eingabe....

Grüße
Klaus

BUG 8. Aug 2014 17:54

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.

Namenloser 9. Aug 2014 00:07

AW: Schweren Ausnahmefehler finden
 
Oder einfach mal in verdächtigen Routinen Log-Ausgaben einstreuen:
Delphi-Quellcode:
procedure Foo;
begin
  writeLn('Foo');

  ...

  writeLn('End Foo');
end;
Dann sieht man ja, wo er abbricht und kann weiter eingrenzen.

Ist zwar eine recht plumpe Vorgehensweise, aber nach meiner Erfahrung häufig das effektivste bei solchen Fehlern...

himitsu 9. Aug 2014 10:35

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.

Uwe Raabe 9. Aug 2014 17:56

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.

Cyberbob 9. Aug 2014 20:46

AW: Schweren Ausnahmefehler finden
 
Zitat:

Zitat von gmc616 (Beitrag 1267993)
[...] beim Endanwender [...]

Bedeutet, bei dir Funktioniert das Programm? Was macht es denn? Datenbank, Hardwarezugriff? etc...

gmc616 13. Aug 2014 12:15

AW: Schweren Ausnahmefehler finden
 
Zitat:

Zitat von Cyberbob (Beitrag 1268154)
Zitat:

Zitat von gmc616 (Beitrag 1267993)
[...] beim Endanwender [...]

Bedeutet, bei dir Funktioniert das Programm? Was macht es denn? Datenbank, Hardwarezugriff? etc...

Ja, genau das habe ich damit gemeint! :roll: Bei mir und auch auf 100ten anderen PCs funktioniert das Programm (zumeist) ohne Probleme. Alles was ich habe, sind Screenshots von ein und der selben Fehlermeldung.

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:

Zitat von Uwe Raabe (Beitrag 1268140)
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.
[...]
Das Problem liegt also mit hoher Wahrscheinlichkeit im System deines Kunden und nicht in deinem Programm.

Genau das habe ich mir auch gesagt. Deshalb habe ich den Rechner mittlerweile zu mir geholt.

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 02:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz