Autor |
Beitrag |
Christoph Englmann
      
Beiträge: 276
|
Verfasst: 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
      
Beiträge: 394
Erhaltene Danke: 8
Win XP
D5 Prof, C# Express 2005
|
Verfasst: 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 
      
Beiträge: 276
|
Verfasst: 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
      
Beiträge: 394
Erhaltene Danke: 8
Win XP
D5 Prof, C# Express 2005
|
Verfasst: 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
      
Beiträge: 1335
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: 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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Fr 13.10.06 12:34
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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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
|
Verfasst: 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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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
      
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)
|
Verfasst: Mo 08.01.07 00:30
ich freue mich schon auf dein Debugger Tutorial 
_________________ Programmers never die, they just GOSUB without RETURN
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: 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.  Dir steht der Quelltext lediglich  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. 
_________________ Gruß
Hansa
|
|