I use Visual Studio Code for debugging and using the "Native Debug" extension I connect to qemu and I debug the kernel.
Now I've finished following "Higher Half x86 Bare Bones" and everything is working as it should.
However, I came across the fact that after jumping to the top half, I can't debug the code in this file. Debugging when in other source files works fine.
Code: Select all
section .multiboot.text
. . .
; Jump to higher half with an absolute jump.
; <breakpoint is successfully triggered here>
lea ecx, .higher_half
jmp ecx
section .text
.higher_half:
; Unmap the identity mapping as it is now unnecessary.
; <breakpoint doesn't work here>
mov [boot_page_directory + 0], DWORD 0
; Reload crc3 to force a TLB flush so the changes to take effect.
mov ecx, cr3
mov cr3, ecx
. . .
Has anyone encountered this? What could be the problem?