I am using qemu (kvm enabled) to debug linux, I set break-point on schedule() ( a function i know that i can break on ) before the grub loads the kernel. However, after the grub loads the kernel, the kernel does not stop on that break-point. My theory is that I set the break-point before the vmlinux is loaded by the grub, kvm might just store a trap instruction on that memory location, when the kernel is loaded by grub, the trap instruction gets overwritten. I am running on an amd64 processor from amd. I am not sure whether hardware debug register is available or enabled on the machine. Any suggestion from qemu and gdb folks are welcome.
Also, when i issue a cat /proc/modules, i get all the addresses where all the modules are loaded, are those addresses physical address or virtual address. my guess is that they are physical. Thanks Xin