Hallo,
ich verwende den Long Mode und in meinen Funktionen, die die Paging Tabellen verändern um eine Page zu mappen bzw. sie wieder freizugeben, gibt es Triplefault nachdem versucht wird auf die PML4 selber zuzugreifen (über die Addresse 0xFFFFFFFFF000). Hier ist die Ausgabe von Bochs:
Warum greift der Prozessor denn nicht auf den letzten Eintrag der PML4 zu sondern auf den ersten?
ich verwende den Long Mode und in meinen Funktionen, die die Paging Tabellen verändern um eine Page zu mappen bzw. sie wieder freizugeben, gibt es Triplefault nachdem versucht wird auf die PML4 selber zuzugreifen (über die Addresse 0xFFFFFFFFF000). Hier ist die Ausgabe von Bochs:
Code: [Auswählen]
[CPU0 RD]: PHY 0x0000000000a07000 (len=8): 0x00000000 0x00A0802B ; PML4E
[CPU0 RD]: PHY 0x0000000000a08000 (len=8): 0x00000000 0x00A0902B ; PDPTE
[CPU0 RD]: PHY 0x0000000000a09000 (len=8): 0x00000000 0x00A0A02B ; PDE
[CPU0 RD]: PHY 0x0000000000a0a000 (len=8): 0x00000000 0x0000000B ; PTE
[CPU0 WR]: PHY 0x0000000000a0a000 (len=8): 0x00000000 0x0000002B ; PTE
[CPU0 RD]: LIN 0x00000000000000d0 PHY 0x00000000000000d0 (len=8, pl=0): 0xF000FF53 0xF000FF53
[CPU0 RD]: LIN 0x00000000000000d8 PHY 0x00000000000000d8 (len=8, pl=0): 0xF000FF53 0xF000FF53
[CPU0 RD]: LIN 0x0000000000000080 PHY 0x0000000000000080 (len=8, pl=0): 0xF000FF53 0xF000FF53
[CPU0 RD]: LIN 0x0000000000000088 PHY 0x0000000000000088 (len=8, pl=0): 0xF000FF53 0xF000FF53
rax: 0x0000ffff_fffff000 rcx: 0x80000000_00a0720b
rdx: 0x00000000_00000000 rbx: 0x00000000_00a1e000
rsp: 0x00000000_00201fa1 rbp: 0x00000000_00201ff1
rsi: 0x00000000_00000001 rdi: 0x00000000_00a1e000
r8 : 0x00000000_00000000 r9 : 0x00000000_00000001
r10: 0x00000000_00000000 r11: 0x00000000_00000000
r12: 0x00000000_00000000 r13: 0x00000000_00000000
r14: 0x00000000_00000000 r15: 0x00000000_00000000
rip: 0x00000000_00100c6c
eflags 0x00210006: ID vip vif ac vm RF nt IOPL=0 of df if tf sf zf af PF cf
(0).[522443589] [0x0000000000100c6c] 0018:0000000000100c6c (unk. ctxt): mov rax, qword ptr ds:[rax+rdx*8] ; 488b04d0
Next at t=522443590
(0) [0x00000000fffffff0] f000:fff0 (unk. ctxt): jmp far f000:e05b ; ea5be000f0
Wobei an der Addresse 100c6c der ausgeführte Code liegt.Warum greift der Prozessor denn nicht auf den letzten Eintrag der PML4 zu sondern auf den ersten?

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken


Gespeichert