[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Rationalise debugger stuff in the tree.
ChangeSet 1.1670, 2005/06/04 14:07:05+01:00, kaf24@xxxxxxxxxxxxxxxxxxxx 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@xxxxxxxxxxxxx> b/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in | 308 b/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/configure | 4650 ++++++++++ b/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/configure.in | 121 b/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/configure.srv | 75 b/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/linux-xen-low.c | 556 + b/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/server.c | 639 + b/tools/debugger/gdb/gdb-6.2.1-xen-sparse/mkbuildtree | 115 b/tools/debugger/gdb/gdbbuild | 23 b/tools/debugger/libxendebug/Makefile | 72 b/tools/debugger/libxendebug/list.h | 186 b/tools/debugger/libxendebug/xendebug.c | 599 + b/tools/debugger/libxendebug/xendebug.h | 78 b/tools/debugger/pdb/Domain.ml | 63 b/tools/debugger/pdb/Domain.mli | 38 b/tools/debugger/pdb/Intel.ml | 71 b/tools/debugger/pdb/Makefile | 56 b/tools/debugger/pdb/OCamlMakefile | 1149 ++ b/tools/debugger/pdb/PDB.ml | 180 b/tools/debugger/pdb/Process.ml | 39 b/tools/debugger/pdb/Process.mli | 20 b/tools/debugger/pdb/Util.ml | 153 b/tools/debugger/pdb/debugger.ml | 315 b/tools/debugger/pdb/evtchn.ml | 32 b/tools/debugger/pdb/evtchn.mli | 14 b/tools/debugger/pdb/pdb_caml_xc.c | 732 + b/tools/debugger/pdb/pdb_xen.c | 93 b/tools/debugger/pdb/server.ml | 219 b/tools/libxc/Makefile | 3 b/tools/libxc/xc.h | 5 b/tools/libxc/xc_private.c | 5 b/tools/libxc/xc_private.h | 2 b/xen/Rules.mk | 5 b/xen/common/domain.c | 20 b/xen/include/asm-x86/debugger.h | 53 b/xen/include/public/xen.h | 2 b/xen/include/xen/sched.h | 1 tools/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in | 308 tools/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/configure | 4650 ---------- tools/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/configure.in | 121 tools/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/configure.srv | 75 tools/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/linux-xen-low.c | 556 - tools/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/server.c | 639 - tools/gdb/gdb-6.2.1-xen-sparse/mkbuildtree | 115 tools/gdb/gdbbuild | 23 tools/libxc/list.h | 186 tools/libxc/xc_debug.c | 580 - tools/libxc/xc_debug.h | 76 tools/pdb/Domain.ml | 63 tools/pdb/Domain.mli | 38 tools/pdb/Intel.ml | 71 tools/pdb/Makefile | 54 tools/pdb/OCamlMakefile | 1149 -- tools/pdb/PDB.ml | 180 tools/pdb/Process.ml | 39 tools/pdb/Process.mli | 20 tools/pdb/Util.ml | 153 tools/pdb/debugger.ml | 315 tools/pdb/evtchn.ml | 32 tools/pdb/evtchn.mli | 14 tools/pdb/pdb_caml_xc.c | 732 - tools/pdb/pdb_xen.c | 93 tools/pdb/server.ml | 219 62 files changed, 10633 insertions(+), 10560 deletions(-) diff -Nru a/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in b/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in 2005-06-04 10:02:48 -04:00 @@ -0,0 +1,308 @@ +# Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +# 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + +# This file is part of GDB. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +host_alias = @host_alias@ +target_alias = @target_alias@ +program_transform_name = @program_transform_name@ +bindir = @bindir@ +libdir = @libdir@ +tooldir = $(libdir)/$(target_alias) + +datadir = @datadir@ +mandir = @mandir@ +man1dir = $(mandir)/man1 +man2dir = $(mandir)/man2 +man3dir = $(mandir)/man3 +man4dir = $(mandir)/man4 +man5dir = $(mandir)/man5 +man6dir = $(mandir)/man6 +man7dir = $(mandir)/man7 +man8dir = $(mandir)/man8 +man9dir = $(mandir)/man9 +infodir = @infodir@ +htmldir = $(prefix)/html +includedir = @includedir@ + +SHELL = /bin/sh + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ + +CC = @CC@ + +# Directory containing source files. Don't clean up the spacing, +# this exact string is matched for by the "configure" script. +srcdir = @srcdir@ +VPATH = @srcdir@ + +# It is also possible that you will need to add -I/usr/include/sys to the +# CFLAGS section if your system doesn't have fcntl.h in /usr/include (which +# is where it should be according to Posix). + +# Set this up with gcc if you have gnu ld and the loader will print out +# line numbers for undefinded refs. +#CC-LD=gcc -static +CC-LD=${CC} + +# Where is the "include" directory? Traditionally ../include or ./include +INCLUDE_DIR = ${srcdir}/../../include +INCLUDE_DEP = $$(INCLUDE_DIR) + +# Where are the BFD library? +BFD_DIR = ../../bfd +BFD = $(BFD_DIR)/libbfd.a +BFD_SRC = $(srcdir)/$(BFD_DIR) +BFD_CFLAGS = -I$(BFD_DIR) -I$(BFD_SRC) + +# Where is the source dir for the READLINE library? Traditionally in .. or . +# (For the binary library built from it, we use ${READLINE_DIR}${subdir}.) +READLINE_DIR = ${srcdir}/../readline +READLINE_DEP = $$(READLINE_DIR) + +# All the includes used for CFLAGS and for lint. +# -I. for config files. +# -I${srcdir} for our headers. +# -I$(srcdir)/../regformats for regdef.h. +INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../regformats -I$(INCLUDE_DIR) -I../../../../../libxc/ + +# M{H,T}_CFLAGS, if defined, has host- and target-dependent CFLAGS +# from the config/ directory. +GLOBAL_CFLAGS = ${MT_CFLAGS} ${MH_CFLAGS} +#PROFILE_CFLAGS = -pg + +WARN_CFLAGS = -Wall + +# CFLAGS is specifically reserved for setting from the command line +# when running make. I.E. "make CFLAGS=-Wmissing-prototypes". +CFLAGS = @CFLAGS@ + +# INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros. +INTERNAL_CFLAGS = $(WARN_CFLAGS) ${CFLAGS} ${GLOBAL_CFLAGS} \ + ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${BFD_CFLAGS} + +# LDFLAGS is specifically reserved for setting from the command line +# when running make. +LDFLAGS = @LDFLAGS@ + +# Perhaps should come from parent Makefile +VERSION = gdbserver-4.12.3 +DIST=gdb + +LINT=/usr/5bin/lint +LINTFLAGS= $(BFD_CFLAGS) + +# All source files that go into linking GDB remote server. + +SFILES= $(srcdir)/gdbreplay.c $(srcdir)/inferiors.c \ + $(srcdir)/mem-break.c $(srcdir)/proc-service.c $(srcdir)/regcache.c \ + $(srcdir)/remote-utils.c $(srcdir)/server.c $(srcdir)/target.c \ + $(srcdir)/thread-db.c $(srcdir)/utils.c \ + $(srcdir)/linux-arm-low.c $(srcdir)/linux-i386-low.c \ + $(srcdir)/i387-fp.c \ + $(srcdir)/linux-ia64-low.c $(srcdir)/linux-low.c \ + $(srcdir)/linux-m68k-low.c $(srcdir)/linux-mips-low.c \ + $(srcdir)/linux-ppc-low.c $(srcdir)/linux-s390-low.c \ + $(srcdir)/linux-sh-low.c $(srcdir)/linux-x86-64-low.c + +DEPFILES = @GDBSERVER_DEPFILES@ + +SOURCES = $(SFILES) +TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS} + +OBS = inferiors.o regcache.o remote-utils.o server.o signals.o target.o \ + utils.o \ + mem-break.o \ + $(DEPFILES) +GDBSERVER_LIBS = @GDBSERVER_LIBS@ + +# Prevent Sun make from putting in the machine type. Setting +# TARGET_ARCH to nothing works for SunOS 3, 4.0, but not for 4.1. +.c.o: + ${CC} -c ${INTERNAL_CFLAGS} $< + +all: gdbserver-xen gdbreplay + +# Traditionally "install" depends on "all". But it may be useful +# not to; for example, if the user has made some trivial change to a +# source file and doesn't care about rebuilding or just wants to save the +# time it takes for make to check that all is up to date. +# install-only is intended to address that need. +install: all install-only +install-only: + n=`echo gdbserver-xen | sed '$(program_transform_name)'`; \ + if [ x$$n = x ]; then n=gdbserver-xen; else true; fi; \ + $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(bindir); \ + $(INSTALL_PROGRAM) gdbserver-xen $(DESTDIR)$(bindir)/$$n; \ + $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(man1dir); \ + $(INSTALL_DATA) $(srcdir)/gdbserver.1 $(DESTDIR)$(man1dir)/$$n.1 + +uninstall: force + n=`echo gdbserver-xen | sed '$(program_transform_name)'`; \ + if [ x$$n = x ]; then n=gdbserver-xen; else true; fi; \ + rm -f $(bindir)/$$n $(DESTDIR)$(man1dir)/$$n.1 + +installcheck: +check: +info dvi: +install-info: +html: +install-html: +clean-info: + +gdbserver-xen: $(OBS) ${ADD_DEPS} ${CDEPS} + rm -f gdbserver-xen + ${CC-LD} $(GLOBAL_CFLAGS) $(LDFLAGS) -o gdbserver-xen $(OBS) \ + $(GDBSERVER_LIBS) $(XM_CLIBS) + +gdbreplay: gdbreplay.o + rm -f gdbreplay + ${CC-LD} $(GLOBAL_CFLAGS) $(LDFLAGS) -o gdbreplay gdbreplay.o \ + $(XM_CLIBS) + +# Put the proper machine-specific files first, so M-. on a machine +# specific routine gets the one for the correct machine. +# The xyzzy stuff below deals with empty DEPFILES +TAGS: ${TAGFILES} + etags `find ${srcdir}/../config -name $(TM_FILE) -print` \ + `find ${srcdir}/../config -name ${XM_FILE} -print` \ + `find ${srcdir}/../config -name ${NAT_FILE} -print` \ + `for i in yzzy ${DEPFILES}; do \ + if [ x$$i != xyzzy ]; then \ + echo ${srcdir}/$$i | sed -e 's/\.o$$/\.c/' ; \ + fi; \ + done` \ + ${TAGFILES} +tags: TAGS + +clean: + rm -f *.o ${ADD_FILES} *~ + rm -f gdbserver gdbreplay core make.log + rm -f reg-arm.c reg-i386.c reg-ia64.c reg-m68k.c reg-mips.c + rm -f reg-ppc.c reg-sh.c reg-x86-64.c reg-i386-linux.c + +maintainer-clean realclean distclean: clean + rm -f nm.h tm.h xm.h config.status config.h stamp-h config.log + rm -f Makefile + +STAGESTUFF=${OBS} ${TSOBS} ${NTSOBS} ${ADD_FILES} init.c init.o version.c gdb + +config.h: stamp-h ; @true +stamp-h: config.in config.status + CONFIG_FILES="" $(SHELL) ./config.status + +Makefile: Makefile.in config.status + CONFIG_HEADERS="" $(SHELL) ./config.status + +config.status: configure configure.srv + $(SHELL) ./config.status --recheck + +force: + +version.c: Makefile + echo 'char *version = "$(VERSION)";' >version.c + +# GNU Make has an annoying habit of putting *all* the Makefile variables +# into the environment, unless you include this target as a circumvention. +# Rumor is that this will be fixed (and this target can be removed) +# in GNU Make 4.0. +.NOEXPORT: + +# GNU Make 3.63 has a different problem: it keeps tacking command line +# overrides onto the definition of $(MAKE). This variable setting +# will remove them. +MAKEOVERRIDES= + +gdb_proc_service_h = $(srcdir)/../gdb_proc_service.h $(srcdir)/../gregset.h +regdat_sh = $(srcdir)/../regformats/regdat.sh +regdef_h = $(srcdir)/../regformats/regdef.h +regcache_h = $(srcdir)/regcache.h +server_h = $(srcdir)/server.h $(regcache_h) config.h $(srcdir)/target.h \ + $(srcdir)/mem-break.h + +inferiors.o: inferiors.c $(server_h) +mem-break.o: mem-break.c $(server_h) +proc-service.o: proc-service.c $(server_h) $(gdb_proc_service_h) +regcache.o: regcache.c $(server_h) $(regdef_h) +remote-utils.o: remote-utils.c terminal.h $(server_h) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |