| 42 | * http://wiki.osdev.org/VMWare |
| 43 | > * Guest debugging |
| 44 | > * These options are valid in Workstation 6.0+, and should be set in the virtual machine's .vmx file. |
| 45 | > {{{ |
| 46 | > debugStub.listen.guest32 = "TRUE" |
| 47 | > debugStub.listen.guest64 = "TRUE" |
| 48 | > }}} |
| 49 | > * If using these options, Workstation prints a message "VMware Workstation is listening for debug connection on port 8832." into the vmware.log file. Start a GDB session (using a copy of your kernel that includes debug information), then: |
| 50 | > {{{ |
| 51 | > target remote localhost:8832 |
| 52 | > }}} |
| 53 | > * Standard gdb commands work in this mode (e.g. printing memory, backtrace). Note that this is a debug stub attached to the KERNEL, not a userspace program. |
| 54 | > * Other useful options: |
| 55 | > {{{ |
| 56 | > debugStub.listen.guest32.remote = "TRUE" # Allows debugging from a different computer / VM instead of localhost. # The IP for remote debugging will be that of the host. |
| 57 | > debugStub.listen.guest64.remote = "TRUE" # Same, but for 64-bit code |
| 58 | > monitor.debugOnStartGuest32 = "TRUE" # Breaks into debug stub on first instruction (warning: in BIOS!) # This will halt the VM at the very first instruction at 0xFFFF0, you could set the next breakpoint to break *0x7c00 to break when the bootloader is loaded by the BIOS |
| 59 | > debugStub.hideBreakpoints = "TRUE" # Allows gdb breakpoints to work |
| 60 | > bios.bootDelay = "3000" # Delay booting the BIOS code. |
| 61 | > }}} |