AGB  ·  Datenschutz  ·  Impressum  







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

EAccessViolation im Projekt

Ein Thema von Z32 · begonnen am 6. Feb 2007 · letzter Beitrag vom 14. Nov 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#11

Re: EAccessViolation im Projekt

  Alt 4. Nov 2008, 10:24
In der Map-Datei erstellt dir ein "Speichermapping" des kompilierten Codes bereit gestellt.

So kann man sich über die Speicheradresse der Exception in der Map-Datei anschauen, welche Funktion/wlches Objekt den Fehler geworfen hat.
"Hey Süße,
hol mir mal was zu trinken! Du wirst schon wieder hässlich!"

Zitat eines Betrunkenen
  Mit Zitat antworten Zitat
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#12

Re: EAccessViolation im Projekt

  Alt 4. Nov 2008, 10:43
Zitat von spaxxn:
In der Map-Datei erstellt dir ein "Speichermapping" des kompilierten Codes bereit gestellt.

So kann man sich über die Speicheradresse der Exception in der Map-Datei anschauen, welche Funktion/wlches Objekt den Fehler geworfen hat.
Höt sich doch schonmal ganz gut an. Ich habe das mal ausprobiert und mir mit
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  abc: TForm;
begin
  abc := nil;
  abc.Show;
end;
eine Speicherzugriffsverletzung erzeugt, die da lautet:
Zitat:
Zugriffsverletzung bei Adresse 004458A6 in Modul 'Project1.exe'. Lesen von Adresse 000002F4.
Wenn ich nun in der erzeugten Map-Datei (Stufe: detailliert) nach der Adresse 004458A6 suche, finde ich nichts. Bei der Adresse 000002F4 finde ich zwei mal folgende Zeile:
Zitat:
0001:000002F4 InterlockedDecrement
Nur, was soll mir die Zeile sagen, mit dem ich was anfangen könnte zur Fehlerfindung?
  Mit Zitat antworten Zitat
gkoeder

Registriert seit: 15. Jun 2004
84 Beiträge
 
Delphi 2010 Professional
 
#13

Re: EAccessViolation im Projekt

  Alt 4. Nov 2008, 10:50
Zitat von Infect:
Kann man die EAccessViolation irgendwie auswerten um auf die Stelle zu kommen (Unit + Codezeile), an der das ganze passiert?
Für sowas setze ich Eurekalog ein (http://www.eurekalog.com). Eurekalog zeigt bei einem Fehler ausserhalb der IDE (also beim Kunden ...) ein detailliertes Fehlerprotokoll an (wo trat der Fehler auf, welche Zeile, welche Unit, etc.). Welche Infos der Kunde sehen soll, kann parametrisiert werden.

Gruß
Gerald
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#14

Re: EAccessViolation im Projekt

  Alt 4. Nov 2008, 11:54
Wenn es um eine Zugriffsverleztung geht ist die vollständige Fehlermeldung sehr Hilfreich. Daraus ist dann ersichtlich ob es ein Schreib- oder Lesezugriff ist und anhand der Adresse auf die geschrieben wird bzw. von der gelesen wird kann man auch Rückschlüsse ziehen. Und zuletzt ist auch die Adresse an welcher der Fehler aufgetreten ist nicht uninteressant wenn man die Sourcen und das Binary hat.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#15

Re: EAccessViolation im Projekt

  Alt 13. Nov 2008, 11:54
Habe mir nun mal die Trial-Version von diesem Eurekalog angeschaut. Macht wirklich einen sehr ausgereiften Eindruck und dürfte uns beim Auffinden des Fehlers sehr behilflich sein. Ich denke, das werden wir uns zulegen, da es außerdem noch recht kostengünstig ist (299,- für ne Firmenlizenz).
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#16

Re: EAccessViolation im Projekt

  Alt 13. Nov 2008, 12:12
Wie lautet nun eigentlich die genaue Fehlermeldung inklusive der Adressen?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#17

Re: EAccessViolation im Projekt

  Alt 13. Nov 2008, 12:31
EAccessViolation bekommst du meistens dann wenn du stdcall vergessen hast.
Prüf das mal.

gruss Emil
  Mit Zitat antworten Zitat
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#18

Re: EAccessViolation im Projekt

  Alt 13. Nov 2008, 14:44
Zitat von SirThornberry:
Wie lautet nun eigentlich die genaue Fehlermeldung inklusive der Adressen?
Kann ich dir leider nicht sagen, weil wir die bisher nicht mitloggen, sondern lediglich am Telefon gesagt bekommen . Und da heißt es halt immer nur "Access Violation".
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#19

Re: EAccessViolation im Projekt

  Alt 13. Nov 2008, 14:56
Hallo,

im Suchenmenü gibt es doch den Menüeintrag Laufzeitfehler suchen, kann der Dir nicht weiter helfen, dazu brauchst Du aus der Fehlermeldung allerdings die Fehleradresse.
  Mit Zitat antworten Zitat
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#20

Re: EAccessViolation im Projekt

  Alt 14. Nov 2008, 09:31
Hab ich bisher noch gar nicht ausprobiert. Kannte diese Möglichkeit auch nicht. Wobei wir ja nun auch dieses EurekaLog einsetzen, um Laufzeitfehler aufzuspüren, das macht wirklich einen sehr ausgereiften Eindruck. Ich denke, damit werden wir der besagten Speicher-Zugriffsverletzung schon auf die Schliche kommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 10:00 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