[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] xenctx: Fix handling of !guest_protected_mode
commit 3e4b7e0c83cc984f5a02e9d8e7f7153b9be22c40 Author: Don Slutz <dslutz@xxxxxxxxxxx> AuthorDate: Thu Apr 3 15:07:07 2014 -0400 Commit: Ian Campbell <ian.campbell@xxxxxxxxxx> CommitDate: Fri Apr 4 09:28:09 2014 +0100 xenctx: Fix handling of !guest_protected_mode Start with adding the code to the 64 bit path that the 32 bit path has. Next disable the "Stack Trace" or "Call Trace". Finally allow stack dump. Signed-off-by: Don Slutz <dslutz@xxxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- tools/xentrace/xenctx.c | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-) diff --git a/tools/xentrace/xenctx.c b/tools/xentrace/xenctx.c index fa300b5..3804bd3 100644 --- a/tools/xentrace/xenctx.c +++ b/tools/xentrace/xenctx.c @@ -498,8 +498,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; } @@ -514,8 +519,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; } @@ -865,6 +875,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 @@ -1003,7 +1016,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; -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |