aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xentrace
diff options
context:
space:
mode:
authorAlex Williamson <alex.williamson@hp.com>2007-07-02 08:38:45 -0600
committerAlex Williamson <alex.williamson@hp.com>2007-07-02 08:38:45 -0600
commit821d1e611501e57947ad62ca352beb7035d44875 (patch)
tree1f0cab2393a0584f662dc5c89cca06f3419853a7 /tools/xentrace
parente57246bd3a17d0157e14f852709d3bbe2f40c9a6 (diff)
downloadxen-821d1e611501e57947ad62ca352beb7035d44875.tar.gz
xen-821d1e611501e57947ad62ca352beb7035d44875.tar.bz2
xen-821d1e611501e57947ad62ca352beb7035d44875.zip
[IA64] Remove IA64_GUEST_CONTEXT_RBS_OFFSET
Pass the offset in the vcpu_reg struct. Fix displaying stack register in xenctx. Signed-off-by: Tristan Gingold <tgingold@free.fr>
Diffstat (limited to 'tools/xentrace')
-rw-r--r--tools/xentrace/xenctx.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/tools/xentrace/xenctx.c b/tools/xentrace/xenctx.c
index 7861d11cd1..274da0b41b 100644
--- a/tools/xentrace/xenctx.c
+++ b/tools/xentrace/xenctx.c
@@ -335,7 +335,7 @@ void print_ctx(vcpu_guest_context_t *ctx)
struct vcpu_guest_context_regs *regs = &ctx->regs;
struct vcpu_tr_regs *tr = &ctx->regs.tr;
int i;
- unsigned int rbs_size;
+ unsigned int rbs_size, cfm_sof;
printf(" ip: %016lx ", regs->ip);
print_symbol(regs->ip);
@@ -485,15 +485,18 @@ void print_ctx(vcpu_guest_context_t *ctx)
printf("\n");
rbs_size = (regs->ar.bsp - regs->ar.bspstore) / 8;
- for (i = 0; i < (regs->cfm & CFM_SOF_MASK); i++) {
- unsigned int rbs_off = (((64 - (rbs_size % 64) - i)) / 64) + i;
+ cfm_sof = (regs->cfm & CFM_SOF_MASK);
+ for (i = 0; i < cfm_sof; i++) {
+ int off = cfm_sof - i;
+ unsigned int rbs_off =
+ (((62 - ((rbs_size + regs->rbs_voff) % 64) + off)) / 63) + off;
if (rbs_off > rbs_size)
break;
printf(" r%02d: %016lx%s", 32 + i,
regs->rbs[rbs_size - rbs_off],
(i % 3) != 2 ? " " : "\n");
}
- if (i && (i % 3) != 2)
+ if ((i % 3) != 0)
printf ("\n");
if (disp_tlb) {