Files
xen/tools/debugger/gdb
kaf24@firebug.cl.cam.ac.uk 3ad72f8da8 Fix 64-bit HVM guest debug via gdbserver:
1. gdb_regs for 64bit, and macros to transfer regisers between ptrace
    registers to gdb registers
 2. xc_ptrace code building for 64bit
 3. Implementation of new map_domain_va for 64bit
 4. gdbserver-xen build configuration fixes for 64bit

From: Nitin Kamble
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-03-26 11:50:39 +01:00
..
2006-03-24 10:57:52 +01:00

DomU GDB server for 32-bit (PAE and non-PAE) systems
----------------------------------------------------

Lines marked below with [*] are optional, if you want full
source-level debugging of your kernel image.

To build the GDB server:
 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 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 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.