mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
39 lines
1.4 KiB
Plaintext
39 lines
1.4 KiB
Plaintext
|
|
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.
|