[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 09/17] xenctx: Add command line option -T (--tag-trace)
On Thu, 2014-03-20 at 15:06 -0400, Don Slutz wrote: > If specified, add stack addr to Call and Stack trace. This could safely be unconditional I think. Or if not then it should share an option with --tag-stack-dump, e.g. -a,--print-addresses > @@ -755,9 +758,15 @@ static int print_stack(vcpu_guest_context_any_t *ctx, > int vcpu, int width) > p = map_page(ctx, vcpu, stack); > if (!p) > return -1; > - printf("| "); > + if ( xenctx.tag_call_trace ) > + { > + print_stack_word(stack, width); > + printf(": | "); > + } else { > + printf("| "); > + } if (trace) print stack work print ": " } print ("| ") (the examples you gave have no vertical | in them -- are they out of date?) > @@ -769,7 +778,13 @@ static int print_stack(vcpu_guest_context_any_t *ctx, > int vcpu, int width) > return -1; > frame = read_stack_word(p, width); > if (xenctx.stack_trace) { > - printf("|-- "); > + if ( xenctx.tag_call_trace ) > + { > + print_stack_word(stack, width); > + printf(": |-- "); > + } else { > + printf("|-- "); > + } Same comment as above. > print_stack_word(read_stack_word(p, width), width); > printf("\n"); > } > @@ -780,7 +795,13 @@ static int print_stack(vcpu_guest_context_any_t *ctx, > int vcpu, int width) > if (!p) > return -1; > word = read_stack_word(p, width); > - printf("%c [<", xenctx.stack_trace ? '|' : ' '); > + if ( xenctx.tag_call_trace ) > + { > + print_stack_word(stack, width); > + printf(": %c [<", xenctx.stack_trace ? '|' : ' '); > + } else { > + printf("%c [<", xenctx.stack_trace ? '|' : ' '); > + } and again (here the code duplication is especially intolerable) > print_stack_word(word, width); > printf(">]"); > print_symbol(word); > @@ -796,13 +817,25 @@ static int print_stack(vcpu_guest_context_any_t *ctx, > int vcpu, int width) > return -1; > word = read_stack_word(p, width); > if (is_kernel_text(word)) { > - printf(" [<"); > + if ( xenctx.tag_call_trace ) > + { > + print_stack_word(stack, width); > + printf(": [<"); > + } else { > + printf(" [<"); > + } again. > print_stack_word(word, width); > printf(">]"); > print_symbol(word); > printf("\n"); > } else if (xenctx.stack_trace) { > - printf(" "); > + if ( xenctx.tag_call_trace ) > + { > + print_stack_word(stack, width); > + printf(": "); > + } else { > + printf(" "); > + } again. It almost like a print_stack_trace helper is in order. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |