AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe mit Access Violation

Ein Thema von okoeller · begonnen am 8. Mai 2008 · letzter Beitrag vom 9. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
okoeller

Registriert seit: 21. Nov 2006
66 Beiträge
 
Turbo Delphi für Win32
 
#1

Hilfe mit Access Violation

  Alt 8. Mai 2008, 16:22
Hallo

in einem anderen Forumsbeitrag von mirage228 habe ich folgendes gelesen:
Zitat:
Also die Fehlermeldung deutet auf eine Nullzeigerdereferenzierung hin, also irgendwo im Code versuchst du auf eine Variable zuzugreifen, die zu diesem Zeitpunkt = nil ist.
Wie kann ich beim Auftreten einer AV nun feststellen wer der Verursacher ist?
Das Programm an dem ich arbeite ist kein Dreizeiler, sondern hat einige 10.000 Zeilen mit mehr als 100 Klassen(verteilt auf 8 Packages).
In den letzten 2 Tagen habe ich versucht mit F7 und F8 durch den code zu gehen und den Fehler dingfest zu machen.
Bisher leider ohne Erfolg, da die Fehlermeldung erst mit dem Beenden der Application angezeigt wird.
Es scheint sich aber auf ein Package und den Aufruf eines bestimmten Fensters einschränken zu lassen.
Dieses Fenster besitzt mehrere in sich verschachtelte Frames von denen einige dynamisch erzeugt werden.

Kann hier jemand helfen?????

Vielen Dank
Oliver
  Mit Zitat antworten Zitat
Mikender
(Gast)

n/a Beiträge
 
#2

Re: Hilfe mit Access Violation

  Alt 8. Mai 2008, 16:39
Wie wärs mit Nach und nach Teile des Codes zu Kommentalieren
((meine zum Kommentar machen ( mit Strg + #)) Oder wie nennt man das ??)

Aber sonst fält mir dazu nix ein
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#3

Re: Hilfe mit Access Violation

  Alt 8. Mai 2008, 16:51
Nimm FastMM oder anderes Überwachungstool. Das nennt dir dann auch die Zeile.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Hilfe mit Access Violation

  Alt 8. Mai 2008, 16:58
Hi,

Breakpoint weit vor der stelle setzen und Variablen weit vorher kontrollieren, ob alles stimmt. So findet man es am Besten, denn eine AV tritt meistens an ganz anderer Stelle auf als wo man den Fehler gemacht hat. Also Breakpoint + durchsteppen.

Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Hilfe mit Access Violation

  Alt 8. Mai 2008, 18:30
Das callstack-Fenster ist oft sehr hilfreich, um herauszufinden, wo man den Breakpoint setzen, und das Effsiebenen beginnen sollte.
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
okoeller

Registriert seit: 21. Nov 2006
66 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Hilfe mit Access Violation

  Alt 8. Mai 2008, 19:14
Hallo Delphianer,

vielen Dank für Eure Tips.
Mal sehen was mich weiterbringt.

Was bedeuten bei Debuggen eigentlich die Marienkäfer an den Tabs der einzelnen Units?
Hat das noch mehr zu sagen als das sich der Debugger gerade in der mit Marienkäfer markierten Unit befindet.
Ich dachte zunächst das hier ein Fehler aufgetreten ist, hab aber dann in den Videos mit Nick Hodges gesehen das in seinen Beispielen auch die Marienkäfer zu sehen waren.


@ FAlter: Genau das hab ich die letzten beiden Tage versucht. Meist ist es aber so das die Variablen nichts anzeigen, weil sie wegoptimiert werden.


Oliver
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Hilfe mit Access Violation

  Alt 8. Mai 2008, 19:19
Zitat von okoeller:
@ FAlter: Genau das hab ich die letzten beiden Tage versucht. Meist ist es aber so das die Variablen nichts anzeigen, weil sie wegoptimiert werden.
Dann sind sie überflüssig.

Hast du schon alle Warnungen und Hinweise des Kompilers beseitigt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Hilfe mit Access Violation

  Alt 8. Mai 2008, 19:21
Hi,

Zitat von okoeller:
Meist ist es aber so das die Variablen nichts anzeigen, weil sie wegoptimiert werden.
Da hilft vorübergehendes Deaktivieren der Optimierung (Projektoptionen oder {$O-}). Wobei ich so etwas noch nie hatte. Wenn auf Variablen nicht zugegriffen werden konnte, gab es entweder ein Hinweis (zugewisener Wert nie genutzt/Variable deklariert, aber nicht verwendet) , oder man konnte vor dem ersten/nach dem letzten Auftauchen der Variable nicht zugreifen. Zwischendurch eigentlich immer.

Das sollten Marienkäfer sein? Ich dachte immer, das sind hässliche rote Wanzen. Marienkäfer sind doch viel schöner.

Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
okoeller

Registriert seit: 21. Nov 2006
66 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Hilfe mit Access Violation

  Alt 8. Mai 2008, 20:16
Hallo Dezipaitor,

Zitat von Dezipaitor:
Nimm FastMM oder anderes Überwachungstool. Das nennt dir dann auch die Zeile.
Also ich hab mir den FastMM runtergeladen und installiert, konnte mein Programm auch compilieren. Wie macht sich denn jetzt der FastMM genau bemerkbar, im Ereignisprotokoll??
Nachdem der Fehler aufgetreten ist wird mir jetzt die CPU Ansicht angezeigt, mit der ich nicht wirklich was anfangen kann!

Hier ein Ausschnitt aus dem Ereignisprotokoll:

....
1 Modul entladen: PluginManager.bpl. Prozess MdiApp.exe (1224)
2 Erste Gelegenheit für Exception bei $7C812A5B. Exception-Klasse EAccessViolation mit
Meldung 'Access violation at address 01171658. Read of address 01171658'. Prozess
MdiApp.exe (1224)


Was sagt mir denn jetzt die 1224 ??
Anbei noch ein Bild (Bild01.jpg)nach Beenden des Programms.

Oliver
Miniaturansicht angehängter Grafiken
bild01_115.jpg   bild01_140.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Hilfe mit Access Violation

  Alt 9. Mai 2008, 00:41
Also dem Screenshot nach rummst es vermutlich beim oder nach dem Entladen des PluginManager.bpl - wenn dort dann die Stelle klar ist an der es rummst, kann man im Projekt schauen, wo überall daran herummanipuliert wird, in vielen Fällen kommt man so zum Ziel. Übler wäre es natürlich, wenn Dein Fehler gar nicht direkt im Objekthandling zu suchen ist sondern durch überschriebenen Speicher o.ä. zustande kommt. Das lässt sich aus der Ferne aber nicht sagen und meine Glaskugel ist gerade beim Pfandleiher

Gibts im PluginManager ein Finalize? Wenn ja, setz da mal einen Breakpoint direkt an den Anfang. Kommt die AV vor dem Breakpoint oder erst danach?
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  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 07:31 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