Kann Unterprogramm nicht aufrufen

Für Fragen rund um die Ide und zum Debugger
Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Kann Unterprogramm nicht aufrufen

Beitrag von Christian »

Ein Stack Überlauf erzeugt meines wissens nach ekine Access Violations, AV ist eine Zugriffsverletzung also ein Zugriff auf einen Speicherbereich der dem Programm nicht gehört.
Lieber Klaus, da du nichts von deinem Code zeigst kann man da auch nichts beurteilen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

br_klaus
Beiträge: 244
Registriert: Do 21. Jan 2010, 22:33
OS, Lazarus, FPC: Windows Vista (L 0.9.31 FPC 2.5.1)
CPU-Target: 32Bit
Wohnort: z.z. Brasilien, sonst 82335 Berg-Leoni (südlich von München)

Re: Kann Unterprogramm nicht aufrufen

Beitrag von br_klaus »

HABE DEN FEHLER GEFUNDEN!!!

Es war ein Bug in meiner (älteren) Lazarus-Fpc2.71 - Version.

Wo es bei begin heißt
push ebp
mov ebp, esp
sub esp, xxxx

da wurde falsch subtrahiert. 0x147fdf8 - 0xb0 ergab nämlich 0x3547fdf8, und das ist natürlich total verkehrt. Darum konnte ich da auch nicht mehr auf den Stack zugreifen, sei es durch CALL oder PUSH oder auch POP, und es kam die obige Fehlermeldung.

In der neuen Version von CodeTyphon 4.70 vom 15.1.2014 (Lazarus Source 21.11.2013, SVN Rev 43470 - FPC 2.7.1 vom 10.11.2013, SVN Rev 26014) heißt es jetzt etwas anders:

push ebp
mov epb, esp
lea esp, [esp-xxx]

und das wird richtig berechnet.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Kann Unterprogramm nicht aufrufen

Beitrag von Christian »

hier geht auch niemand davon aus das du nen unstable Compiler einsetzt.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten