[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 10/17] xenctx: Add -m (--memory) <maddr> option to dump memory at maddr.
On Thu, 2014-03-20 at 15:06 -0400, Don Slutz wrote: > Currently not supported on ARM. > > New routine read_mem_word() will correctly read a word that crosses > a page boundary. It will not fault if the 2nd page can not be > mapped. > > Here is an example: > Memory (address ffffffff803ddf90): > ffffffff80048d19 0000000000200800 ffffffff803e7801 0000000000086800 > 0000000000000000 ffffffff80430720 ffffffff803e722f 80008e000010019c > 00000000ffffffff 0000000000000000 0000000000000000 0000000000200000 > 0000000000000000 0000000000000000 0000000000000000 00cf9b000000ffff > 00af9b000000ffff 00cf93000000ffff 00cffb000000ffff 00cff3000000ffff > > Signed-off-by: Don Slutz <Don@xxxxxxxxxxxxxxx> > --- > v5: Remove extra #ifndef. Make common routine print_lines(). > > tools/xentrace/xenctx.c | 232 > +++++++++++++++++++++++++++++++++--------------- > 1 file changed, 162 insertions(+), 70 deletions(-) > > diff --git a/tools/xentrace/xenctx.c b/tools/xentrace/xenctx.c > index 5732665..13f56ed 100644 > --- a/tools/xentrace/xenctx.c > +++ b/tools/xentrace/xenctx.c > @@ -33,23 +33,6 @@ > #define DEFAULT_BYTES_PER_LINE 32 > #define DEFAULT_LINES 5 > > -static struct xenctx { > - xc_interface *xc_handle; > - int domid; > - int frame_ptrs; > - int stack_trace; > - int disp_all; > - int multiple_pages; > - int bytes_per_line; > - int lines; > - int decode_as_ascii; > - int tag_stack_dump; > - int tag_call_trace; > - int all_vcpus; > - int self_paused; > - xc_dominfo_t dominfo; > -} xenctx; > - > #if defined (__i386__) || defined (__x86_64__) > typedef unsigned long long guest_word_t; > #define FMT_32B_WORD "%08llx" > @@ -73,6 +56,27 @@ typedef uint64_t guest_word_t; > > #define MAX_BYTES_PER_LINE 128 > > +static struct xenctx { > + xc_interface *xc_handle; > + int domid; > + int frame_ptrs; > + int stack_trace; > + int disp_all; > + int multiple_pages; > + int bytes_per_line; > + int lines; > + int decode_as_ascii; > + int tag_stack_dump; > + int tag_call_trace; > + int all_vcpus; > +#ifndef NO_TRANSLATION > + guest_word_t mem_addr; > + int do_memory; > +#endif > + int self_paused; > + xc_dominfo_t dominfo; > +} xenctx; > + This motion seems to be unmotivated by the commit message. (I've no idea why there is a struct for this stuff anyway, even though there is a good chance I added it, it could just as easily be globals in a program of this sort) > int main(int argc, char **argv) > { > int ch; > int ret; > +#ifndef NO_TRANSLATION > + static const char *sopts = "fs:hak:SCn:b:l:DtTm:"; > +#else > static const char *sopts = "fs:hak:SCn:b:l:DtT"; > +#endif static const char *sopts = "fs:hak:SCn:b:l:DtT" #ifdef .... "m:" #endif ; Or something to avoid that massive repetition. Another possibility: #ifndef NO_TRANSLATION #define TRANSLATION_OPTS "m:" #else #define TRANSLATION_OPTS #endif sopts = "fs:....." TRANS...._OPTS Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |