Hi All,
I am trying to explain this as accurately as possible. Maybe somebody can help me.
I am developing my own micro kernel on top of my own hypervisor (two different systems though). I have my custom bootloader and everything works well. I can run my OS on hardware but also on VMWare Fusion (via PXE boot).
Here is my setup. I have a MacBook Pro, running VMware Fusion 6. Guest 1 is a Ubuntu 10.04 (my development environment). I am running all services from here (PXE, TFTP, NFS, DHCP, everything). Guest 2 is my own OS. Upon starting guest two, it will automatically try to boot via PXE which is serviced by guest 1 (Ubuntu). The OS is then being transferred by TFTP and comes up without problems. Once my hypervisor starts executing, it will launch my micro kernel as a guest. Again, this works without any trouble. I have all the functionality I need.
Now, I'd like to use the GDB stub to debug my hypervisor. I follow this guide: VMware - OSDev Wiki
So I execute gdb inside my Ubuntu with my hypervisor as a target. Once I am in the GDB prompt, I type: target remote <IP>:PORT where IP is my MabBook's IP address. All adapters are in bridged mode over the Thunderbolt adapter.
I get the connection and the guest 2 (my OS) halts. I set a breakpoint in my hypervisor (lets say right before I start my micro kernel as a guest [vmlaunch]). For some odd reason, EVERY breakpoint I set in my hypervisor is being completely ignored.
If, however, I set a breakpoint inside my micro kernel, the execution will stop and I can step through instructions as expected.
I am really confused at this point. I can debug my kernel without any problems but not my hypervisor? They are all running as Guest 2 (from VmWare's perspective).
Does anybody have an idea what I can try here?
Thanks!
Marost