|
[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 |