Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   try..except: in welcher zeiler tritt das Fehler auf? (https://www.delphipraxis.net/156802-try-except-welcher-zeiler-tritt-das-fehler-auf.html)

romber 15. Dez 2010 11:26

Delphi-Version: 5

try..except: in welcher zeiler tritt das Fehler auf?
 
Hallo!

Ich habe in meinem Server-Programm ein Fehler entdeckt, das zum Abbruch des Programms führt. Dieses Fehler tritt sehr-sehr selten auf und ich konnte bis jetzt die Ursache nicht finden. Ich habe die Code, in dem dieses Fehler auftritt, zwischen try..except gesetzt und erhalte "Zugriffsverletzung bei Adresse 0068205D in Modul 'svrlsys.exe'. Lesen von Adresse 0000000C". Das sagt mir auber nicht viel. Kann ich irgendwie erfahren, welche Codezeile dieses Fehler verursacht oder wenigstens das betrofene Object?

Luckie 15. Dez 2010 11:30

AW: try..except: in welcher zeiler tritt das Fehler auf?
 
Da fällt mir als aller erstes MadExcept ein. Aber wie hast du den Code in einem try-except-Block gefasst, wenn du eine solche Fehlermeldung bekommst? Fängst du die Exception denn auch irgendwo wieder auf?

romber 15. Dez 2010 11:47

AW: try..except: in welcher zeiler tritt das Fehler auf?
 
Ich meinte, ich fange das Fehler mit
Delphi-Quellcode:
on E: Exception
auf.
MadExcept verde ich mir gelich angucken, danke. Mich würde auch interessieren, wie erfahrene Programmiere normalerweise selten auftrettende Fehler aufspüren.

Sir Rufo 15. Dez 2010 11:58

AW: try..except: in welcher zeiler tritt das Fehler auf?
 
Eigentlich relativ simpel:

So wie du, den Teil mit try..except auffangen und protokollieren lassen (kritische Stellen sollten aber eh immer mindestens ein try.finally haben)
Ist der Code-Block dann eindeutig als Störenfried ermittelt, dann vor jeder Zeile in diesem Code-Block einen Log-Eintrag erzeugen und evtl. die Werte der dort benutzten Variablen mitschreiben lassen.

Oder man nimmt madExcept ... ist halt Geschmackssache.

Wenn man die Meldung von madExcept nicht deuten kann, dann eben die oben genannte Methode

shmia 15. Dez 2010 13:42

AW: try..except: in welcher zeiler tritt das Fehler auf?
 
Zitat:

Zitat von romber (Beitrag 1068654)
Mich würde auch interessieren, wie erfahrene Programmiere normalerweise selten auftrettende Fehler aufspüren.

Delphi Fehlersuche

himitsu 15. Dez 2010 19:28

AW: try..except: in welcher zeiler tritt das Fehler auf?
 
Zitat:

Zugriffsverletzung bei Adresse 0068205D in Modul 'svrlsys.exe'. Lesen von Adresse 0000000C
0068205D sagt doch die Stelle und MadExcept sollte diesen Wert in Datei+Zeilennummer umrechnen können.


000000xx weist fast immer auf einen Pointer/Objekt mit dem Wert NIL hin.

romber 16. Dez 2010 00:26

AW: try..except: in welcher zeiler tritt das Fehler auf?
 
Vielen Dank für Eure Vorschläge!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 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