Autor Beitrag
Christoph Englmann
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: Di 10.10.06 12:27 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 8

Win XP
D5 Prof, C# Express 2005
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 8

Win XP
D5 Prof, C# Express 2005
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1335
Erhaltene Danke: 118

Win 10
RIO, CE, Lazarus
BeitragVerfasst: 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.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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 ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Fr 13.10.06 12:34 
user profile iconChristoph 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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 ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Framige
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Mo 08.01.07 00:30 
ich freue mich schon auf dein Debugger Tutorial :mrgreen:

_________________
Programmers never die, they just GOSUB without RETURN
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mo 08.01.07 02:51 
user profile iconFramige 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)

_________________
Gruß
Hansa