![]() |
access violation beim hinzufügen eines Elements in eine Liste
der aktuelle Fehler in unserer Anwendung tritt beim hinzufügen einen Elements in eine Objectliste auf,
Madshi maxexcept hüpft beim Debuggen direkt zu dieser Codezeile in system.pas
Delphi-Quellcode:
procedure DynArraySetLength(var a: Pointer; typeInfo: Pointer; dimCnt: NativeInt; lengthVec: PNativeint);
..... // Calculate the needed size of the heap object t := PDynArrayTypeInfo( PByte(typeInfo) + PDynArrayTypeInfo(typeInfo).name ); .... mein Code Block zum Einfügen eines Elements in die Liste ist schon einige Jahre alt und hat bisher ohne Probleme funktioniert. Wie kann ich hier weiter debuggen ?? |
AW: access violation beim hinzufügen eines Elements in eine Liste
Welcher Codeblock?
|
AW: access violation beim hinzufügen eines Elements in eine Liste
Und was hat sich seit dem in deinem Programm geändert?
Andere Delphi Version vielleicht? Aber wie schon geschrieben: ohnew etwas Code wie du das aufrufst kommen wir nicht weiter. Ich gehe davon aus, dass der Fehler reproduzierbar jedes Mal auftritt und nicht sporadisch? |
AW: access violation beim hinzufügen eines Elements in eine Liste
Zitat:
|
AW: access violation beim hinzufügen eines Elements in eine Liste
an anderen Stellen, Routinen wurde (natürlich) schon was geändert, aber alle Änderunmgen sehen harmlos aus & die Access Violation findet halt in einem alten Code Fragment ohne bezug zu den anderen Klassen, Routinen ... statt.
Wie finde ich jetzt die Stelle mit dem Fehler ?? ![]() was sind den typische Konstellationen welche zu einem Heap fehler führen ? |
AW: access violation beim hinzufügen eines Elements in eine Liste
Zitat:
|
AW: access violation beim hinzufügen eines Elements in eine Liste
wie finde ich heraus welche Variable unter 00000000004177AC gespeichert ist, welche Tool kann mir beim Debuggen weiterhelfen ?
Delphi-Quellcode:
Message: Access violation at address 00000000004177AC in module 'TESTS_VCLGUIAPP.exe'. Read of address 0000000000000001
|
AW: access violation beim hinzufügen eines Elements in eine Liste
Modul-Liste (DLLs) oder in der Assembler-Ansicht hochscrollen
da siehst dann in welchem Programmteil du bist sind Debuginfos oder Externals-Definitionen vorhanden, siehst'e auch noch die Funktion und vielleicht Codezeile. |
AW: access violation beim hinzufügen eines Elements in eine Liste
Zitat:
Delphi-Quellcode:
sieht eindeutig nach einen Zugriff auf einen Speicherblock (z. B. ein Objekt) über einen nil pointer aus.
Message: Access violation at address 00000000004177AC in module 'TESTS_VCLGUIAPP.exe'. Read of address 0000000000000001
|
AW: access violation beim hinzufügen eines Elements in eine Liste
Es besteht die Wahrscheinlichkeit das die Objektliste bereits freigegeben ist und die Variable weiterhin auf den freigegebenen Speicherbereich zeigt. Solche Fehler führen zur Laufzeit nicht in jedem Fall direkt zur Zugriffsverletzung. Nur wenn der eingebaute Speichermanager den für das Objekt reservierten Speicher auch bereits an das Betriebsystem zurückgegeben hat. Dashalb kann eine Änderung an einem ganz anderen Programmteil plötzlich den Fehler zu Tage treten lassen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 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 by Thomas Breitkreuz