[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v8 16/20] xenctx: Fix handling of !guest_protected_mode
On Thu, 2014-03-27 at 15:05 -0400, Don Slutz wrote: > Start with adding the code to the 64 bit path that the 32 bit path > has. One for people who keep x86 in their brains, is it possible for a processor to be in 64-bit non-protected mode? > Next disable the "Stack Trace" or "Call Trace". > > Finally allow stack dump. > > Signed-off-by: Don Slutz <dslutz@xxxxxxxxxxx> > --- > v8: > A little more in the commit message. > > tools/xentrace/xenctx.c | 16 +++++++++++++++- > 1 file changed, 15 insertions(+), 1 deletion(-) > > diff --git a/tools/xentrace/xenctx.c b/tools/xentrace/xenctx.c > index 1d5b36e..1ab837e 100644 > --- a/tools/xentrace/xenctx.c > +++ b/tools/xentrace/xenctx.c > @@ -524,8 +524,13 @@ static guest_word_t > instr_pointer(vcpu_guest_context_any_t *ctx) > r += ctx->x32.user_regs.cs << NONPROT_MODE_SEGMENT_SHIFT; > } > else > + { > r = ctx->x64.user_regs.rip; > > + if ( !guest_protected_mode ) > + r += ctx->x64.user_regs.cs << NONPROT_MODE_SEGMENT_SHIFT; > + } > + > return r; > } > > @@ -540,8 +545,13 @@ static guest_word_t > stack_pointer(vcpu_guest_context_any_t *ctx) > r += ctx->x32.user_regs.ss << NONPROT_MODE_SEGMENT_SHIFT; > } > else > + { > r = ctx->x64.user_regs.rsp; > > + if ( !guest_protected_mode ) > + r += ctx->x64.user_regs.ss << NONPROT_MODE_SEGMENT_SHIFT; > + } > + > return r; > } > > @@ -894,6 +904,9 @@ static int print_stack(vcpu_guest_context_any_t *ctx, int > vcpu, int width, > return -1; > } > > + if ( !guest_protected_mode ) > + return 0; > + > if(xenctx.stack_trace) > printf("Stack Trace:\n"); > else > @@ -1032,7 +1045,8 @@ static void dump_ctx(int vcpu) > #ifndef NO_TRANSLATION > if (print_code(&ctx, vcpu)) > return; > - if ( kernel_addr(instr_pointer(&ctx)) >= KERNEL_TEXT_ADDR ) > + if ( !guest_protected_mode || > + kernel_addr(instr_pointer(&ctx)) >= KERNEL_TEXT_ADDR ) > if ( print_stack(&ctx, vcpu, guest_word_size, > stack_pointer(&ctx)) ) > return; _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |