From: George Dunlap <george.dunlap@eu.citrix.com>
To: Ian Campbell <Ian.Campbell@citrix.com>, Don Slutz <dslutz@verizon.com>
Cc: Don Slutz <Don@CloudSwitch.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Ian Jackson <ian.jackson@eu.citrix.com>,
Jan Beulich <jbeulich@suse.com>,
xen-devel@lists.xen.org
Subject: Re: [PATCH v8 03/20] xenctx: Add -n (--display-stack-pages) option to output larger stack
Date: Tue, 1 Apr 2014 14:25:21 +0100 [thread overview]
Message-ID: <533ABE41.2020901@eu.citrix.com> (raw)
In-Reply-To: <1396358391.8667.172.camel@kazak.uk.xensource.com>
On 04/01/2014 02:19 PM, Ian Campbell wrote:
> On Thu, 2014-03-27 at 15:05 -0400, Don Slutz wrote:
>> Important: This is the stack size (also known as stack limit) to
>> display not the configured stack size.
>>
>> Note: use with caution (easy to get garbage).
>>
>> Below is a pictures of a configured 3 page stack, and where
>> the SP currently is. Each box is a page.
>>
>> -n 1 -n 2 -n 3
>>
>> +------------------+
>> | |
>> | |
>> | |
>> | |
>> SP --> | | * * *
>> +------------------+ | |
>> | | | |
>> | | | |
>> | | | |
>> | | | |
>> | | * |
>> +------------------+ |
>> | | |
>> | | |
>> | | |
>> | | |
>> | | *
>> +------------------+
>>
>> Display using "-n 3" since the used stack pages is 3.
>
> Stacks grow downwards on all of the architectures we support. Perhaps
> that is why the rest of us find your diagrams so confusing?
>
> I drew my example to you the way I did for a reason.
>
> Also, should the other end of the *---* line from SP (the bottom in your
> diagram above) not be aligned to a page boundary, after all -n works in
> pages.
>
>
>> @@ -664,6 +667,8 @@ static int print_stack(vcpu_guest_context_any_t *ctx, int vcpu, int width)
>>
>> stack_limit = ((stack_pointer(ctx) + XC_PAGE_SIZE)
>> & ~((guest_word_t) XC_PAGE_SIZE - 1));
>> + if ( xenctx.nr_stack_pages > 1 )
>> + stack_limit += (xenctx.nr_stack_pages - 1) * XC_PAGE_SIZE;
>
> The if here is still redundant.
>
>> printf("\n");
>> printf("Stack:\n");
>> for (i=1; i<5 && stack < stack_limit; i++) {
>> @@ -834,18 +839,24 @@ static void usage(void)
>> kernel_start);
>> printf(" -a, --all display more registers\n");
>> printf(" -C, --all-vcpus print info for all vcpus\n");
>> + printf(" -n PAGES, --display-stack-pages=PAGES\n");
>> + printf(" Display N pages from the stack pointer. (default %d)\n",
>> + DEFAULT_NR_STACK_PAGES);
>> + printf(" Changes stack limit. Note: use with caution (easy\n");
>> + printf(" to get garbage).\n");
>
> Doesn't it go without saying that if you go off the bottom of the stack
> you will get garbage?
Only if you know that the tool doesn't know where the end of the stack
is. (Although hopefully the wording, "Display N pages" should give you
a hint.)
But what is "changes stack limit" supposed to mean?
-George
next prev parent reply other threads:[~2014-04-01 13:25 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-27 19:05 [PATCH v8 00/20] xenctx: Many changes Don Slutz
2014-03-27 19:05 ` [PATCH v8 01/20] xenctx: clean up usage output Don Slutz
2014-03-27 19:05 ` [PATCH v8 02/20] xenctx: Clean up stack trace when hypercall_page not in symbol table Don Slutz
2014-03-27 19:05 ` [PATCH v8 03/20] xenctx: Add -n (--display-stack-pages) option to output larger stack Don Slutz
2014-04-01 13:19 ` Ian Campbell
2014-04-01 13:25 ` George Dunlap [this message]
2014-04-01 20:28 ` Don Slutz
2014-04-02 10:39 ` Ian Campbell
2014-03-27 19:05 ` [PATCH v8 04/20] xenctx: Add command line options -b (--bytes-per-line) and -l (--lines) Don Slutz
2014-04-01 14:30 ` Ian Campbell
2014-03-27 19:05 ` [PATCH v8 05/20] xenctx: Add command line option -D (--decode-as-ascii) Don Slutz
2014-04-01 13:27 ` Ian Campbell
2014-03-27 19:05 ` [PATCH v8 06/20] xenctx: Add command line option -t (--tag-stack-dump) Don Slutz
2014-03-27 19:05 ` [PATCH v8 07/20] xenctx: Change print_symbol to do the space before Don Slutz
2014-03-27 19:05 ` [PATCH v8 08/20] xenctx: More info on failed to map page Don Slutz
2014-03-27 19:05 ` [PATCH v8 09/20] xenctx: Add output of stack address to Call and Stack Trace Don Slutz
2014-04-01 13:28 ` Ian Campbell
2014-03-27 19:05 ` [PATCH v8 10/20] xenctx: Add -m (--memory) <maddr> option to dump memory at maddr Don Slutz
2014-04-01 13:30 ` Ian Campbell
2014-03-27 19:05 ` [PATCH v8 11/20] xenctx: Add error output if --all-vcpus (-C) and [VCPU] are both specified Don Slutz
2014-04-01 13:44 ` Ian Campbell
2014-04-01 18:24 ` Don Slutz
2014-03-27 19:05 ` [PATCH v8 12/20] xenctx: Add -d (--dump-as-stack) <daddr> option to dump memory at daddr as a stack Don Slutz
2014-04-01 13:46 ` Ian Campbell
2014-04-01 18:23 ` Don Slutz
2014-03-27 19:05 ` [PATCH v8 13/20] xenctx: change is_kernel_text() into kernel_addr() Don Slutz
2014-04-01 14:10 ` Ian Campbell
2014-04-01 21:33 ` Don Slutz
2014-04-02 10:34 ` Ian Campbell
2014-04-02 17:08 ` Don Slutz
2014-03-27 19:05 ` [PATCH v8 14/20] xenctx: Add convert of more registers to symbols Don Slutz
2014-04-01 14:11 ` Ian Campbell
2014-04-01 17:25 ` Don Slutz
2014-03-27 19:05 ` [PATCH v8 15/20] xenctx: Add output of vcpu value and state for --all-vcpus Don Slutz
2014-03-27 19:05 ` [PATCH v8 16/20] xenctx: Fix handling of !guest_protected_mode Don Slutz
2014-04-01 14:14 ` Ian Campbell
2014-04-01 18:35 ` Don Slutz
2014-04-02 10:41 ` Ian Campbell
2014-03-27 19:05 ` [PATCH v8 17/20] xenctx: Allow output for offline vcpu when specified Don Slutz
2014-04-01 14:24 ` Ian Campbell
2014-04-01 19:24 ` Don Slutz
2014-04-02 10:42 ` Ian Campbell
2014-03-27 19:05 ` [PATCH v8 18/20] xenctx: Add 16 bit output Don Slutz
2014-04-01 14:25 ` Ian Campbell
2014-04-01 18:53 ` Don Slutz
2014-03-27 19:05 ` [PATCH v8 19/20] xenctx: Fix print_ctx_32on64's print_special call Don Slutz
2014-04-01 14:27 ` Ian Campbell
2014-03-27 19:05 ` [PATCH v8 20/20] xenctx: Ensure errno is not zero on error in xc_translate_foreign_address() Don Slutz
2014-04-01 14:30 ` Ian Campbell
2014-04-01 20:49 ` Don Slutz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=533ABE41.2020901@eu.citrix.com \
--to=george.dunlap@eu.citrix.com \
--cc=Don@CloudSwitch.com \
--cc=Ian.Campbell@citrix.com \
--cc=dslutz@verizon.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.