DomU & HVM GDB server for 32-bit (PAE and non-PAE) and x86_64 systems ---------------------------------------------------- Lines marked below with [*] are optional, if you want full source-level debugging of your kernel image. To build the GDB server: 0. Build rest of the Xen first from the base directory 1. Run ./gdbbuild from within this directory. 2. Copy ./gdb-6.2.1-linux-i386-xen/gdb/gdbserver/gdbserver-xen to your test machine. To build a debuggable guest domU kernel image: 1. cd linux-2.6.xx-xenU 2. make menuconfig 3. From within the configurator, enable the following options: # Kernel hacking -> Compile the kernel with debug info [*] -> Compile the kernel with frame pointers 4. (Re)build and (re)install your xenU kernel image. To debug a running guest: 1. Use 'xm list' to discover its domain id ($domid). 2. Run 'gdbserver-xen 127.0.0.1:9999 --attach $domid'. 3. Run 'gdb /path/to/vmlinux-syms-2.6.xx-xenU'. 4. From within the gdb client session: # directory /path/to/linux-2.6.xx-xenU [*] # target remote 127.0.0.1:9999 # bt # disass To debug a crashed domU guest: 1. Add '(enable-dump yes)' to /etc/xen/xend-config.sxp before starting xend. 2. When the domain crashes, a core file is written to '/var/xen/dump/..core'. 3. Run 'gdbserver-xen 127.0.0.1:9999 --file '. 4. Connect to the server as for a running guest.