Files
xen/tools/debugger/gdb
kaf24@firebug.cl.cam.ac.uk 202f5a0b35 The Xen Hypervisor currently operates a bit differently when the
guest is being debugged. The differences are handling of int3 exception
and missed pit timer injections. The Xen hypervisor should get back to
the normal mode when the gdb connection is closed. With the attached
patch gdbserver properly detaches from the guest when the gdb detaches
or quits.

Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
2006-04-19 22:19:41 +01:00
..
2006-04-05 10:54:29 +01:00

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/<domain-name>.<domain-id>.core'.
 3. Run 'gdbserver-xen 127.0.0.1:9999 --file <core-file>'.
 4. Connect to the server as for a running guest.