[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] Add xentrace/xen_crash.
On Mon, 2013-10-14 at 10:07 -0400, Don Slutz wrote: > From: Don Slutz <Don@xxxxxxxxxxxxxxx> > > This allows crash to connect to a domU. Usage: > > usage: xen_crash <domid> [<optional port>] > > xen_crash 1& > crash localhost:5001 > /usr/lib/debug/lib/modules/3.8.11-100.fc17.x86_64/vmlinux > > The domU will be paused while crash is connected. Currently the code exits > when crash disconnects. Could you supply some docs please, ideally a simple man page but a txt would do too. Under docs/ probably so they get published on xenbits etc. > diff --git a/tools/xentrace/Makefile b/tools/xentrace/Makefile > index 63b09c0..a2313c6 100644 > --- a/tools/xentrace/Makefile > +++ b/tools/xentrace/Makefile > @@ -7,7 +7,7 @@ CFLAGS += $(CFLAGS_libxenctrl) > LDLIBS += $(LDLIBS_libxenctrl) > > BIN = xentrace xentrace_setsize > -LIBBIN = xenctx > +LIBBIN = xenctx xen_crash It appears to be x86 specific, at least right now. So please do something like: LIBBIN-$(CONFIG_X86) += xen_crash ... LIBBIN += $(LIBBIN-y) > diff --git a/tools/xentrace/xen_crash.c b/tools/xentrace/xen_crash.c > new file mode 100644 > index 0000000..6a4bb34 > --- /dev/null > +++ b/tools/xentrace/xen_crash.c > @@ -0,0 +1,697 @@ > +/****************************************************************************** > + * tools/xentrace/xen_crash.c > + * > + * Connect crash to DOMu. > + * > + * Copyright (C) 2012 by Cloud Switch, Inc. > + * > + */ > + > +#include <ctype.h> > +#include <time.h> > +#include <stdlib.h> > +#include <sys/mman.h> > +#include <stdio.h> > +#include <sys/types.h> > +#include <sys/socket.h> > +#include <sys/ioctl.h> > +#include <sys/time.h> > +#include <sys/stat.h> > +#include <netinet/in.h> > +#include <netdb.h> > +#include <fcntl.h> > +#include <unistd.h> > +#include <errno.h> > +#include <signal.h> > +#include <string.h> > +#include <inttypes.h> > +#include <getopt.h> > + > +#include "xenctrl.h" > +#include <xen/foreign/x86_32.h> > +#include <xen/foreign/x86_64.h> > +#include <xen/hvm/save.h> > + > +xc_interface *xc_handle = 0; > +int domid = 0; > +int debug = 0; > + > +typedef unsigned long long guest_word_t; > +#define FMT_32B_WORD "%08llx" > +#define FMT_64B_WORD "%016llx" > + > +/* Word-length of the guest's own data structures */ > +int guest_word_size = sizeof (unsigned long); > +/* Word-length of the context record we get from xen */ > +int ctxt_word_size = sizeof (unsigned long); > +int guest_protected_mode = 1; > + > +#define MACHINE_TYPE "X86_64" This looks to be used regardless of the type of the guest? > + > +#define STRNEQ(A, B) (B && \ > + (strncmp((char *)(A), (char *)(B), strlen((char *)(B))) == 0)) > +#define FAILMSG "FAIL " > +#define DONEMSG "DONE " > +#define DATAMSG "DATA " > + > +#define DATA_HDRSIZE 13 /* strlen("XXXX ") + strlen("0131072") + NULL */ I think you could use the strlen calls, which should be statically evaluated directly and avoid the possibility of having miscounted. Is this some protocol defined by crash? Can you include a reference to their specification somewhere please. Is it intended for consumption externally to the crash tools -- i.e. is it a stable protocol? (it smells a bit ad-hoc is why I'm asking). If it's not intended to be consumed like this perhaps the tool would be better off living in the crash source base? Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |