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>
the tree was checked out of CVS, which doens't neccessarily
store file permissions, mkbuildtree may not be executable.
So run them explicitly via bash.
Signed-Off-By: Horms <horms@verge.net.au>
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>
* xc_ptrace
- Merge xc_ptrace_core into xc_ptrace
- ATTACH now reads the data argument. If non-zero then
a corefile is being debuged. Otherwise a thread has
been attached to. This allows xc_waitdomain_core() or
xc_waitdomain() to be called as appropriate in
subsequent xc_ptrace() calls.
* xc_waitdomain
- Rename xc_waitdomain (xc_ptrace.c version) __xc_waitdomain
- Rename xc_waitdomain (xc_ptrace_core.c version) xc_waitdomain_core
- Create xc_waitdomain (in xc_ptrace.c), a wrapper for __xc_waitdomain
and xc_waitdomain_core.
Consolidation seemed difficult but ctxt needs to be
passed into xc_waitdomain_core or made global.
Alternatively, xc_waitdomain_core could be moved into xc_ptrace.c,
but this seems messy.
* map_domain_va
- Rename map_domain_va (xc_ptrace_core.c version) map_domain_va_core
- Have it accept ctxt, like xc_waitdomain_core
* myptrace and myxcwait (linux-xen-low.c)
Removed, call the now generic xc_ptrace() and xc_waitdomain() instead
When calling xc_ptrace ATTACH, if a corefile is in use, a fd will
be passed, otherwise a pid. The fd part is important, as this
is saved internally in xc_ptrace_core.c, and passed to xc_waitdomain_core()
as neccessary. Pereviously xc_waitdomain_core() received a pid and
thus could not open the corefile.
Signed-Off-By: Horms <horms@verge.net.au>
Rationalise debugger stuff in the tree.
Within Xen itself, remove PDB references and fold into domu_debug.
When domu_debug hits a breakpoint, it pauses all vcpus of the domain
and raises VIRQ_DEBUGGER (not VIRQ_PDB). The debugger in domain0 can
either poll pause status or bind to VIRQ_DEBUGGER. Before debugging
a breakpointed domain the debugger should issue PAUSEDOMAIN itself, or
it is not guaranteed to see paused state of the domain!
Outside Xen there's a new dir tools/debugger, containing gdb, pdb and
a new library libxendebug (used by pdb). I also think the ptrace
functions in libxc also ought to be moved out: either to libxendebug
or to a new library libxenptrace.
Signed-off-by: Keir Fraser <keir@xensource.com>