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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).