Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Zugriffsverletzung Adresse im Quellcode wiederfinden
Christoph Englmann - Di 10.10.06 12:27
Titel: Zugriffsverletzung Adresse im Quellcode wiederfinden
Hallo,
habe folgendes Problem:
Bei einer bestimmten Aktion, tritt imm wieder der gleiche Fehler auf:
"Zugriffsverletzung bei Adresse 004A610E in Modul 'xx'. Lesen von Adresse 00000000"
Problem:
kann das zugehörige Ereignis im Quelltext nicht finden.
Frage:
Kann ich aufgrund der Fehlermeldung Rückschlüsse ziehen, wo im Quelltext der Fehler auftritt?
danke
christoph
iKilledKenny - Di 10.10.06 12:31
also lesen von adresse 0000000 heisst eigentlich immer nil-pointer exception.
wenn du das gezielt reproduzieren kannst hilft ein breakpoint und anschliessendes durch-steppen des programms...
grüße
alex
Christoph Englmann - Mi 11.10.06 08:02
hallo,
erstmal danke für Deine Antwort...
Problem ist, dass ich keine stelle für nen breakpoint finde...
klingt jetzt komisch, aber nach nem dopplklick erscheint sofort die fehlermeldung und zwar BEVOR es in die proceduren dbclick oder mousedown geht!!!
christoph
iKilledKenny - Mi 11.10.06 08:17
schau mal in den actions bei den OnUpdate-events rein, vielleicht findest du da was. hatte ich bei mir mal, war auch so nicht zu finden.
Sinspin - Mi 11.10.06 11:21
Das problem hatte ich auch schon öfters. beginne einmal gleich von anfang an das programm zu debuggen. also programm mit F8 starten. da kommst du erst durch dein hauptprogramm und dann wird dir solange deine anwendung angezeigt bis du eine aktion ausführst. in deinem fall einen doppelclick.
dadurch, das du im debug modus bist, müsste dann automatisch dein cursor in der passenden ereignisbehandlung stehen.
BenBE - Do 12.10.06 22:50
Viel einfacher:
Programm mit F7 starten (Einzelschritt) und dann unter Suchen --> Laufzeitfehler suchen --> $004A610E --> OK --> Cursor sollte an die richtige Stelle springen ...
Reinhard Kern - Fr 13.10.06 12:34
Titel: Re: Zugriffsverletzung Adresse im Quellcode wiederfinden
Christoph Englmann hat folgendes geschrieben: |
Hallo,
habe folgendes Problem:
Bei einer bestimmten Aktion, tritt imm wieder der gleiche Fehler auf:
"Zugriffsverletzung bei Adresse 004A610E in Modul 'xx'. Lesen von Adresse 00000000"
Problem:
kann das zugehörige Ereignis im Quelltext nicht finden.
Frage:
Kann ich aufgrund der Fehlermeldung Rückschlüsse ziehen, wo im Quelltext der Fehler auftritt?
danke
christoph |
Hallo,
auf die harte traditionelle Tour: lass den Linker ein Map-File erstellen und suche dort nach 004A610E und/oder den nächsten Zahlenwerten davor und danach. Kann aber sehr schwierig werden, z.B. wenn der Fehler in einem Modul der Laufzeitbibliothek auftritt, was oft der Fall ist.
Gruss Reinhard
BenBE - Fr 13.10.06 18:58
Wenn dem so ist: Die MAPfile kannst Du auch automatisch anhand des Omorphia Debug Interface parsen lassen ... Findest Du bei Omorphia im CVS (ODbgMapfile.pas). Wie die Nutzung davon ist, sollte aus dem Source ersichtlich sein ...
Wobei das im Normalfall auch über nen Texteditor recht gut funktioniert ...
Framige - Do 04.01.07 21:06
Bei mir ist fast das gleiche Problem.
Ich sehe lediglich das CPU-Fenster, möchte aber die entsprechende Zeile im Sourcecode wiederfinden.
Ich weis, das ist lediglich eine Einstellungssache. Aber: wo stelle ich das um bzw. gibt es eine
Funktionstaste die mir die Zeile im Sourcecode anzeigt und nicht im CPU-Fenster???
Framige
BenBE - Mo 08.01.07 00:12
Im CPU-Fenster auf den ASM-Code rechhte Maustaste und Haken bei Gemischte Anzeige rein ...
Ein direktes Default gibt's nicht ... Wenn Delphi zu ner File keinen Source hat, dann macht er's CPU-Fenster auf ... Ggf. einfach den Call-Stack immer mit offen halten und auf die nächsthöhere Prozedur springen ... Dann sollte er direkt zum Source weiterspringen.
alias5000 - Mo 08.01.07 00:30
ich freue mich schon auf dein Debugger Tutorial :mrgreen:
hansa - Mo 08.01.07 02:51
Framige hat folgendes geschrieben: |
..Ich sehe lediglich das CPU-Fenster, möchte aber die entsprechende Zeile im Sourcecode wiederfinden. Ich weiß, das ist lediglich eine Einstellungssache... |
"Lediglich" ist lediglich lediglich und keine Einstellungsache. :mrgreen: Dir steht der Quelltext lediglich :mrgreen: wohl nicht zur Verfügung. Um das nun wirklich zu verifizieren, würde ich die in Frage kommende DCU mal überprüfen, ob es da irgendwo eine PAS dazu gibt. Und die ist nicht da. 8)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!