AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Zugriffsverletzung sofort nach Programmstart
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung sofort nach Programmstart

Ein Thema von BlueStarHH · begonnen am 26. Feb 2020 · letzter Beitrag vom 27. Feb 2020
Antwort Antwort
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#1

Zugriffsverletzung sofort nach Programmstart

  Alt 26. Feb 2020, 16:07
Hallo,

ich erhalte direkt nach Programmstart die EAccessViolation: "Zugriffsverletzung bei Adresse 0040DEE4 in Modul 'Meine.exe'. Lesen von Adresse 06B64000.". Das Exception-Log sieht so aus:

Code:
main thread ($61e0):
0040dee4 +048 Meine.exe System     12238 +0 Pos
020f4a60 +10c Meine.exe ZipForge            initialization
0040bfe2 +042 Meine.exe System     12238 +0 InitUnits
0040c04b +03f Meine.exe System     12238 +0 @StartExe
0041452a +042 Meine.exe SysInit             @InitExe
020f9917 +01b Meine.exe MeinProject  127 +0 initialization
767d6357 +017 KERNEL32.DLL                  BaseThreadInitThunk
Was kann das sein? Sieht ja so aus, als ob die EAccessViolation ganz früh auftritt, noch bevor irgendein Code von mir ausgeführt wurde. An der System.pas wurde nichts geändert. Merkwürig ist auch die Zeulennumer 12238 identisch an 3 Stellen in der System.pas obwohl in den 3 Fällen jeweils andere Funktionen aufgerufen wurden, die nicht an der selben Stelle sind.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.586 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Zugriffsverletzung sofort nach Programmstart

  Alt 26. Feb 2020, 16:24
Was steht denn an der geloggten Stelle der initialization Sektion der ZipForge-Unit?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Zugriffsverletzung sofort nach Programmstart

  Alt 26. Feb 2020, 16:24
Ich würde mit dem Debugger einen Haltepunkt an der ersten Stelle setzen (zum Beispiel im OnFormCreate sofern vorhanden) und mich dann Zeile für Zeile durcharbeiten. Dann solltest du eigentlich relativ schnell sehen wo es kracht.
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Zugriffsverletzung sofort nach Programmstart

  Alt 26. Feb 2020, 16:48
@scrat: Dort kommt er garnicht erst bis hin
Es knallt bereits bei der Initialisierung einer Units, also noch vor seinem eigenen Code. (außer er hat selbst was in die Initialization reingemacht)
Die Initialisierung des Programms und der Units kommt im/vorm ersten BEGIN in der DPR.

Und jupp, die Ausführung kommt bis ZipForge.pas-initialization und danach knallt es, also würde ich auch dort mal nachsehen.
> "initialization" und ob ein "class contructor" in der Unit steht und dort den Haltepunkt rein. (wenn diese Unit mit Debuginfos kompiliert wurde)

Wo system.pas dran steht, das muß nicht in dieser Unit drin sein.
Alles was zur Compilermagic gehört und wo der Compiler eigene Dinge einfügt, das wird mit dieser Quelle angezeigt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Feb 2020 um 16:53 Uhr)
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Zugriffsverletzung sofort nach Programmstart

  Alt 26. Feb 2020, 18:17
Was steht denn an der geloggten Stelle der initialization Sektion der ZipForge-Unit?
Es wird da ja keine konkrete Zeilennummer genannt. Und reinschauen in die ZipForge-Unit geht auch nicht, da ich die Freeware-Version ohne Quellcode verwende.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#6

AW: Zugriffsverletzung sofort nach Programmstart

  Alt 26. Feb 2020, 18:18
Wenn das nicht zuviele Probleme macht, nutz am besten die 7z.dll und den Wrapper der in der Jcl ist.
Wenn es da Probleme gibt, kann man die selber beseitigen.
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Zugriffsverletzung sofort nach Programmstart

  Alt 26. Feb 2020, 18:18
Ich würde mit dem Debugger einen Haltepunkt an der ersten Stelle setzen (zum Beispiel im OnFormCreate sofern vorhanden) und mich dann Zeile für Zeile durcharbeiten. Dann solltest du eigentlich relativ schnell sehen wo es kracht.
Leider passiert das nicht auf dem Entwicklungs-PC sondern auf einem Kunden-PC. Auch kommt er erst gar nicht ins OnFormCreate usw. Sondern es kracht schon vorher in den Delphi-System-Units/Zip-Forge.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Zugriffsverletzung sofort nach Programmstart

  Alt 26. Feb 2020, 18:27
Dann wirst dich wohl nur an den Hersteller von ZipForge wenden können.
ZipForge.pas > initialization > Byte 268 knallt ... vermutlich irgendwas mit Delphi-Referenz durchsuchenPos

Eventuell kann er dir auch eine Version mit Debuginfos zur Verfügung stellen, damit du im Stacktrace vielleicht mehr siehst.


Delphi dort installieren wird ja wohl nicht gehen,
dann bliebe maximal noch der Remotedebugger über eine VPN zu deinem Delphi
und schrittweise nachsehn was du da im Assembler entziffern kannst.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Feb 2020 um 18:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.586 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Zugriffsverletzung sofort nach Programmstart

  Alt 27. Feb 2020, 05:17
Wann hatte es denn zuletzt funktioniert? Gab es seitdem Änderungen im Repository? Wenn ja, würde ich diese erst einmal rückgängig machen und es dann erneut testen.

Wenn es keine Änderungen an den Quelltexten gab, würde ich alle Komponenten neu installieren.

Funktioniert die ZipForge-Unit denn in einem neuen Projekt?

Zur Fehlersuche bleibt ansonsten noch nach und nach alles aus dem Projekt hinauszuwerfen bis der Fehler nicht mehr auftritt. Und dann schauen wann er wieder auftritt. Als erstes würde ich einfach alles, das die ZipForge-Unit verwendet, auskommentieren und es dann ohne diese Unit testen. Es kann sich allerdings auch um einen Speicherfehler handeln, der nur zufällig dort auftritt.

Daher wäre es auch sinnvoll zu schauen welche initialization Abschnitte eigentlich vor dem Fehler durchlaufen werden.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  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 19:13 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