AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Exception wird nicht gefangen
Thema durchsuchen
Ansicht
Themen-Optionen

Exception wird nicht gefangen

Ein Thema von Dalai · begonnen am 14. Jan 2015 · letzter Beitrag vom 16. Jan 2015
Antwort Antwort
Benutzerbild von Dalai
Dalai
Online

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#1

Exception wird nicht gefangen

  Alt 14. Jan 2015, 15:04
Hallo ihr

ich hätt da gern mal wieder ein Problem. Folgende Situation: Ich habe ein Pugin für Total Commander geschrieben, das bei jemand anders den kompletten Total Commander mit ins Nirvana reißt, ohne dass irgendein Exception-Handling anspringen würde, weder das meiner DLL noch das von TC noch das des Betriebssystems. Es kommt also noch nicht einmal die übliche Meldung "Programm XY funktioniert nicht mehr".

Nun habe ich ein wenig "Debugging-Code" (OutputDebugString) in mein Plugin eingebaut und denjenigen gebeten, den Total Commander mit SimpleProgramDebugger auszuführen, um zu sehen, wo das Problem entsteht. Aus den damit gesammelten Daten lässt sich erkennen, dass eine Exception 0xc0000005 auftritt, also eine Access Violation. Fakt ist aber, dass diese Exception definitiv innerhalb eines try-except-Blocks auftritt (bzw. wahrscheinlich sogar mehrerer, wenn ich den des TC mitzähle). Dieser Block soll eigentlich noch mit OutputDebugString die Message der Exception ausgeben - tut er aber nicht.

Fragen: Gibt es Programme, die irgendwie im Exception-Handling von Anwendungen rumpfuschen können? Virenscanner, Sandboxen oder ähnliches? Gibt es andere Möglichkeiten, wie es sein kann, dass die Exception überhaupt nicht gefangen wird?

Ach, bevor jemand meint, das Problem liege an meinem Plugin: Nein, auch ein anderes ähnlich geartetes Plugin produziert exakt das gleiche Problem.

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von NicoDE
NicoDE

Registriert seit: 16. Jul 2012
Ort: Darmstadt
26 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Exception wird nicht gefangen

  Alt 14. Jan 2015, 16:13
Gibt es andere Möglichkeiten, wie es sein kann, dass die Exception überhaupt nicht gefangen wird?
Ja, indem jemand einen VEH-Handler registriert (und darin zum Beispiel auf Synchronisationsobjekte zugreift oder Speicher anfordert, wovon laut MSDN abgeraten wird - oder einfach die Exception unterdrückt).
Nico Bendlin
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai
Online

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#3

AW: Exception wird nicht gefangen

  Alt 14. Jan 2015, 16:57
Mmh, und wie bekomme ich (bzw. derjenige mit dem crashenden TC) heraus, ob das passiert und wenn ja welche Applikation das tut?

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von NicoDE
NicoDE

Registriert seit: 16. Jul 2012
Ort: Darmstadt
26 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Exception wird nicht gefangen

  Alt 14. Jan 2015, 17:06
Mmh, und wie bekomme ich (bzw. derjenige mit dem crashenden TC) heraus, ob das passiert und wenn ja welche Applikation das tut?
Keine Ahnung, soweit ich mich erinnere, gibt es keinen offiziellen Weg die Liste der registrierten VEH-Handler zu bekommen.
Zum Testen würde ich direkt vorher zwei Handler registrieren, einen als ersten und den anderen als letzten, dann eine Exception auslösen und "nachsehen" (ich würde vorher eine Log-Datei erzeugen und in den Handlern nur noch per Handle reinschreiben, damit es möglichst wenig Probleme gibt) ob beide aufgerufen wurden. Wenn nur der erste aufgerufen wird, dann funkt ein anderer VEH-Handler dazwischen... und möglicherweise ist der (noch) registrierte Handler in einer DLL, die bereits entladen wurde...
Nico Bendlin

Geändert von NicoDE (14. Jan 2015 um 17:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai
Online

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#5

AW: Exception wird nicht gefangen

  Alt 16. Jan 2015, 19:17
Das würde aber auch nur ermitteln, ob das der Auslöser ist. Man müsste weiter untersuchen, wo genau der Störenfried steckt. Daher bat ich den "Problemhaber" darum, mal die Autostarts zu durchforsten und ggf. den abgesicherten Modus zu probieren und inzwischen kann ich vermelden: Der Auslöser oder gar die Ursache wurde gefunden, indem ein bestimmtes Programm aus dem Autostart genommen wurde: Sony VaioCare. Ob es die Software selbst oder dessen Dienst war (beim Lesen der Konfiguration genau dieses Dienstes kam es zur Exception), ist mir nicht bekannt.

Dankeschön für die Unterstützung, Nico!

MfG Dalai
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 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