Nun bekomme ich nur noch Page Faults. Offenbar erhält der EIP unter gewissen Umständen einen falschen Wert.
Erster Task Switch nach 20 sec (eingestellt im Time Handler):
Page Fault (page not present) at 0040FC20h - EIP: 0040FC20h
Sehr viele Task switches pro Sekunde:
Page Fault (page not present) at 0F000123h - EIP: 0F000123h
Aber immerhin. Offenbar hat die Clobber List den GPF gegen PF getauscht.
Funktion read_eip() ist in Assembler codiert (process.asm):
Ich habe diese gegen

Erster Task Switch nach 20 sec (eingestellt im Time Handler):
Page Fault (page not present) at 0040FC20h - EIP: 0040FC20h
Sehr viele Task switches pro Sekunde:
Page Fault (page not present) at 0F000123h - EIP: 0F000123h
Aber immerhin. Offenbar hat die Clobber List den GPF gegen PF getauscht.

Funktion read_eip() ist in Assembler codiert (process.asm):
Code: [Auswählen]
global _read_eip
_read_eip:
pop eax ; Get the return address
jmp eax ; Return. Can't use RET because return
; address popped off the stack.
Vielleicht liegt hier der Hund begraben.Ich habe diese gegen
Code: [Auswählen]
global _read_eip
_read_eip:
pop eax
push eax
retausgetauscht. Sieht irgendwie besser aus, hilft aber nicht. 

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken
Gespeichert



