AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign access violation beim hinzufügen eines Elements in eine Liste
Thema durchsuchen
Ansicht
Themen-Optionen

access violation beim hinzufügen eines Elements in eine Liste

Ein Thema von bernhard_LA · begonnen am 9. Jan 2022 · letzter Beitrag vom 11. Jan 2022
Antwort Antwort
Seite 1 von 2  1 2      
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#1

access violation beim hinzufügen eines Elements in eine Liste

  Alt 9. Jan 2022, 00:18
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 ??

Geändert von bernhard_LA ( 9. Jan 2022 um 00:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#2

AW: access violation beim hinzufügen eines Elements in eine Liste

  Alt 9. Jan 2022, 05:37
Welcher Codeblock?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#3

AW: access violation beim hinzufügen eines Elements in eine Liste

  Alt 9. Jan 2022, 09:58
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?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: access violation beim hinzufügen eines Elements in eine Liste

  Alt 9. Jan 2022, 10:28
Wie kann ich hier weiter debuggen ??
Ich würde sagen: gar nicht! Wenn du an der Stelle ankommst, hast du den Fehler vermutlich schon übersehen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: access violation beim hinzufügen eines Elements in eine Liste

  Alt 9. Jan 2022, 13:37
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 ??


https://www.thoughtco.com/understand...esult%20value.


was sind den typische Konstellationen welche zu einem Heap fehler führen ?

Geändert von bernhard_LA ( 9. Jan 2022 um 13:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#6

AW: access violation beim hinzufügen eines Elements in eine Liste

  Alt 9. Jan 2022, 14:45
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 ??
Und du erwartest darauf wirklich eine Antwort, ohne dass wir den betreffenden Code zu sehen bekommen?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: access violation beim hinzufügen eines Elements in eine Liste

  Alt 9. Jan 2022, 18:26
wie finde ich heraus welche Variable unter 00000000004177AC gespeichert ist, welche Tool kann mir beim Debuggen weiterhelfen ?


Message: Access violation at address 00000000004177AC in module 'TESTS_VCLGUIAPP.exe'. Read of address 0000000000000001
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#8

AW: access violation beim hinzufügen eines Elements in eine Liste

  Alt 9. Jan 2022, 18:33
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
701 Beiträge
 
Delphi 12 Athens
 
#9

AW: access violation beim hinzufügen eines Elements in eine Liste

  Alt 10. Jan 2022, 15:11
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 );
  ....
Hast Du validiert dass das die hinzugefügte Objektreferenz nicht nil ist?

Message: Access violation at address 00000000004177AC in module 'TESTS_VCLGUIAPP.exe'. Read of address 0000000000000001 sieht eindeutig nach einen Zugriff auf einen Speicherblock (z. B. ein Objekt) über einen nil pointer aus.
Peter Below
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#10

AW: access violation beim hinzufügen eines Elements in eine Liste

  Alt 10. Jan 2022, 15:16
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:24 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