![]() |
Exception _vor_ dem Starten meines Programmes
Hi!
Ich ziehe die Probleme mal wieder magisch an... Neuerdings kommt schon vor der ersten Zeile meines Programmes eine Exception, und zwar beim Initialisieren der Units (Unit System, Prozedur InitUnits, siehe unten). Ich habe in all meinen Units mit 'initialization' einen Haltpunkt in die erste Zeile nach selbingen gesetzt, aber die Exception kommt noch bevor der erste Haltpunkt erreicht wird. Ggf. also eine Exception in einer Fremdunit. Die Frage ist nun: welche Unit verursacht das Problem? Insgesamt (laut der Variable "Count", s.u.) werden ~486 Units geprüft, ob sie initialisiert werden müssen. Erschwerend kommt hinzu, dass Delphi (weil ich es wohl mal aus versehen angehakt habe) bis eben nicht bei einer AccessViolation angehalten hat; somit kann ich weder sagen, seit wann ich das Problem tatsächlich habe (bisher wurde ja einfach nur keine Fehlermeldung angezeigt), noch welche Unit in diesem Zeitraum neu dazu gekommen sein könnte. Kann man von dem Pointer auf die Unit auf den Unitnamen schließen? Was kann ich tun? *help* Zitat:
Delphi-Quellcode:
procedure InitUnits;
unit System; // ... var Count, I: Integer; Table: PUnitEntryTable; P: Pointer; begin if InitContext.InitTable = nil then exit; Count := InitContext.InitTable^.UnitCount; I := 0; Table := InitContext.InitTable^.UnitInfo; {$IFDEF LINUX} Inc(Cardinal(Table), InitContext.Module^.GOT); {$ENDIF} try while I < Count do begin // <-- hier Exception ---------------------------- P := Table^[I].Init; Inc(I); InitContext.InitCount := I; if Assigned(P) then begin {$IFDEF LINUX} CallProc(P, InitContext.Module^.GOT); {$ENDIF} {$IFDEF MSWINDOWS} TProc(P)(); {$ENDIF} end; end; except FinalizeUnits; raise; end; end; |
Re: Exception _vor_ dem Starten meines Programmes
Falls die Fremdunits als debugbar vorliegen, könntest du versuchen, den geposteten Code auf Assembler-Niveau durchzusteppen (statt wie üblich Pascal-Niveau). Das ist zwar aufwändiger, aber dort kriegst du bei jedem Sprung in eine Methode auch gleich deren Unit (falls Debuginfos vorliegen) frei Haus geliefert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 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