From: Don Slutz <dslutz@verizon.com>
To: Ian Campbell <Ian.Campbell@citrix.com>, Don Slutz <dslutz@verizon.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
George Dunlap <george.dunlap@eu.citrix.com>,
Don Slutz <Don@CloudSwitch.com>,
Ian Jackson <ian.jackson@eu.citrix.com>,
xen-devel@lists.xen.org, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v5 09/17] xenctx: Add command line option -T (--tag-trace)
Date: Mon, 24 Mar 2014 15:54:57 -0400 [thread overview]
Message-ID: <53308D91.3070300@terremark.com> (raw)
In-Reply-To: <1395413088.19839.117.camel@kazak.uk.xensource.com>
On 03/21/14 10:44, Ian Campbell wrote:
> On Thu, 2014-03-20 at 15:06 -0400, Don Slutz wrote:
>> If specified, add stack addr to Call and Stack trace.
> This could safely be unconditional I think.
>
> Or if not then it should share an option with --tag-stack-dump, e.g.
> -a,--print-addresses
>
Ok.
>> @@ -755,9 +758,15 @@ static int print_stack(vcpu_guest_context_any_t *ctx, int vcpu, int width)
>> p = map_page(ctx, vcpu, stack);
>> if (!p)
>> return -1;
>> - printf("| ");
>> + if ( xenctx.tag_call_trace )
>> + {
>> + print_stack_word(stack, width);
>> + printf(": | ");
>> + } else {
>> + printf("| ");
>> + }
> if (trace)
> print stack work
> print ": "
> }
> print ("| ")
>
> (the examples you gave have no vertical | in them -- are they out of
> date?)
Nope. These are non "-f -S" output.
Here is "-f -S" output:
xenctx -s /boot/System.map-2.6.32-279.2.1.el6.mpbios5.x86_64 -f -S 2
rip: ffffffff810387db native_safe_halt+0xb
flags: 00000246 i z p
rsp: ffffffff81a03ec8
rax: 0000000000000000 rcx: 0000000000000000 rdx: 0000000000000000
rbx: 0000000000000000 rsi: 0000000000000001 rdi: ffffffff81ddc228
rbp: ffffffff81a03ec8 r8: 0000000000000000 r9: 0000000000000000
r10: 000001f319222f0f r11: ffffffff81a03e68 r12: ffffffff81c03800
r13: 0000000000000000 r14: ffffffffffffffff r15: 000000000008a790
cs: 0010 ss: 0018 ds: 0018 es: 0018
fs: 0000 @ 0000000000000000
gs: 0000 @ ffff88000b400000/0000000000000000/
Code (instr addr ffffffff810387db)
44 00 00 fb c9 c3 0f 1f 40 00 55 48 89 e5 0f 1f 44 00 00 fb f4 <c9> c3 0f 1f 00 55 48 89 e5 0f 1f
Stack:
ffffffff81a03ee8 ffffffff810149cd ffffffff81a03fd8 ffffffff81c03800
ffffffff81a03f18 ffffffff81009e06 6db6db6db6db6db7 e8be668bda5ab5b6
0000000000000000 6db6db6db6db6db7 ffffffff81a03f28 ffffffff814e447a
ffffffff81a03f68 ffffffff81c23f7b 8d0573d9e73df7bb ffffffff81c6b440
0000000002014024 0000000000000000 ffffffff81dd9000 ffffffff81a03fa8
Stack Trace:
* [<ffffffff810387db>] native_safe_halt+0xb <--
|-- ffffffff81a03ee8
| [<ffffffff810149cd>] default_idle+0x4d
| ffffffff81a03fd8
| ffffffff81c03800
|-- ffffffff81a03f18
| [<ffffffff81009e06>] cpu_idle+0xb6
| 6db6db6db6db6db7
| e8be668bda5ab5b6
| 0000000000000000
| 6db6db6db6db6db7
|-- ffffffff81a03f28
| [<ffffffff814e447a>] rest_init+0x7a
|-- ffffffff81a03f68
| [<ffffffff81c23f7b>] start_kernel+0x424
| 8d0573d9e73df7bb
| ffffffff81c6b440
| 0000000002014024
| 0000000000000000
| ffffffff81dd9000
| ffffffff81a03fa8
|-- ffffffff81a03f88
| [<ffffffff81c2333a>] x86_64_start_reservations+0x125
| ffffffff81a03fa8
| 0000000000000020
|-- ffffffff81a03fe8
| [<ffffffff81c23438>] x86_64_start_kernel+0xfa
| 0000000000000000
| 0000000000000000
| 81c28e0000103136
| 00000000ffffffff
| 0000000000000000
| 0000000000000000
| 0000000000000000
| 0000000000000000
| 0000000000000000
| 0000000000000000
|-- 0000000000000000
>> @@ -769,7 +778,13 @@ static int print_stack(vcpu_guest_context_any_t *ctx, int vcpu, int width)
>> return -1;
>> frame = read_stack_word(p, width);
>> if (xenctx.stack_trace) {
>> - printf("|-- ");
>> + if ( xenctx.tag_call_trace )
>> + {
>> + print_stack_word(stack, width);
>> + printf(": |-- ");
>> + } else {
>> + printf("|-- ");
>> + }
> Same comment as above.
>
>> print_stack_word(read_stack_word(p, width), width);
>> printf("\n");
>> }
>> @@ -780,7 +795,13 @@ static int print_stack(vcpu_guest_context_any_t *ctx, int vcpu, int width)
>> if (!p)
>> return -1;
>> word = read_stack_word(p, width);
>> - printf("%c [<", xenctx.stack_trace ? '|' : ' ');
>> + if ( xenctx.tag_call_trace )
>> + {
>> + print_stack_word(stack, width);
>> + printf(": %c [<", xenctx.stack_trace ? '|' : ' ');
>> + } else {
>> + printf("%c [<", xenctx.stack_trace ? '|' : ' ');
>> + }
> and again (here the code duplication is especially intolerable)
>
>> print_stack_word(word, width);
>> printf(">]");
>> print_symbol(word);
>> @@ -796,13 +817,25 @@ static int print_stack(vcpu_guest_context_any_t *ctx, int vcpu, int width)
>> return -1;
>> word = read_stack_word(p, width);
>> if (is_kernel_text(word)) {
>> - printf(" [<");
>> + if ( xenctx.tag_call_trace )
>> + {
>> + print_stack_word(stack, width);
>> + printf(": [<");
>> + } else {
>> + printf(" [<");
>> + }
> again.
>
>> print_stack_word(word, width);
>> printf(">]");
>> print_symbol(word);
>> printf("\n");
>> } else if (xenctx.stack_trace) {
>> - printf(" ");
>> + if ( xenctx.tag_call_trace )
>> + {
>> + print_stack_word(stack, width);
>> + printf(": ");
>> + } else {
>> + printf(" ");
>> + }
> again.
>
> It almost like a print_stack_trace helper is in order.
>
>
Ok, I will recode these all as routine that is basicly:
+ if ( xenctx.tag_call_trace )
+ {
+ print_stack_word(stack, width);
+ printf(": ");
+ }
-Don Slutz
next prev parent reply other threads:[~2014-03-24 19:54 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-20 19:06 [PATCH v5 00/17] xenctx: Many changes Don Slutz
2014-03-20 19:06 ` [PATCH v5 01/17] xenctx: clean up usage output Don Slutz
2014-03-21 14:21 ` Ian Campbell
2014-03-20 19:06 ` [PATCH v5 02/17] xenctx: Clean up stack trace when hypercall_page not in symbol table Don Slutz
2014-03-20 19:06 ` [PATCH v5 03/17] xenctx: Add -n (--display-stack-pages) option to output larger stack Don Slutz
2014-03-21 14:29 ` Ian Campbell
2014-03-22 20:49 ` Don Slutz
2014-03-24 10:39 ` Ian Campbell
2014-03-24 13:26 ` Don Slutz
2014-03-20 19:06 ` [PATCH v5 04/17] xenctx: Add command line options -b (--bytes-per-line) and -l (--lines) Don Slutz
2014-03-21 14:32 ` Ian Campbell
2014-03-22 20:08 ` Don Slutz
2014-03-22 20:10 ` Don Slutz
2014-03-24 10:44 ` Ian Campbell
2014-03-24 16:58 ` Don Slutz
2014-03-27 15:55 ` Ian Campbell
2014-03-27 19:36 ` Don Slutz
2014-03-20 19:06 ` [PATCH v5 05/17] xenctx: Add command line option -D (--decode-as-ascii) Don Slutz
2014-03-21 14:38 ` Ian Campbell
2014-03-21 18:42 ` Don Slutz
2014-03-24 10:46 ` Ian Campbell
2014-03-24 17:00 ` Don Slutz
2014-03-20 19:06 ` [PATCH v5 06/17] xenctx: Add command line option -t (--tag-stack-dump) Don Slutz
2014-03-21 14:40 ` Ian Campbell
2014-03-20 19:06 ` [PATCH v5 07/17] xenctx: Change print_symbol to do the space before Don Slutz
2014-03-20 19:06 ` [PATCH v5 08/17] xenctx: More info on failed to map page Don Slutz
2014-03-20 19:06 ` [PATCH v5 09/17] xenctx: Add command line option -T (--tag-trace) Don Slutz
2014-03-21 14:44 ` Ian Campbell
2014-03-24 19:54 ` Don Slutz [this message]
2014-03-27 15:56 ` Ian Campbell
2014-03-20 19:06 ` [PATCH v5 10/17] xenctx: Add -m (--memory) <maddr> option to dump memory at maddr Don Slutz
2014-03-21 14:53 ` Ian Campbell
2014-03-25 19:16 ` Don Slutz
2014-03-20 19:06 ` [PATCH v5 11/17] xenctx: Add -d (--dump-as-stack) <daddr> option to dump memory at daddr as a stack Don Slutz
2014-03-21 14:57 ` Ian Campbell
2014-03-24 15:22 ` Don Slutz
2014-03-27 15:58 ` Ian Campbell
2014-03-27 17:05 ` Don Slutz
2014-03-27 17:20 ` Ian Campbell
2014-03-27 17:49 ` Don Slutz
2014-03-20 19:07 ` [PATCH v5 12/17] xenctx: change is_kernel_text() into kernel_addr() Don Slutz
2014-03-21 15:02 ` Ian Campbell
2014-03-21 17:45 ` Don Slutz
2014-03-24 22:23 ` Don Slutz
2014-03-25 9:13 ` Jan Beulich
2014-03-27 15:59 ` Ian Campbell
2014-03-20 19:07 ` [PATCH v5 13/17] xenctx: Add convert of more registers to symbols Don Slutz
2014-03-21 10:24 ` Jan Beulich
2014-03-21 12:34 ` Don Slutz
2014-03-21 14:11 ` [PATCH v6 " Don Slutz
2014-03-21 14:45 ` Jan Beulich
2014-03-21 17:43 ` [PATCH v7 " Don Slutz
2014-03-24 10:51 ` Ian Campbell
2014-03-21 15:03 ` [PATCH v6 " Ian Campbell
2014-03-21 17:38 ` Don Slutz
2014-03-21 15:07 ` [PATCH v5 " Ian Campbell
2014-03-21 15:11 ` Jan Beulich
2014-03-21 16:06 ` Ian Campbell
2014-03-21 18:16 ` Don Slutz
2014-03-24 10:49 ` Ian Campbell
2014-03-24 14:09 ` Don Slutz
2014-03-27 16:06 ` Ian Campbell
2014-03-27 16:52 ` Don Slutz
2014-03-20 19:07 ` [PATCH v5 14/17] xenctx: Add output of vcpu value and state for --all-vcpus Don Slutz
2014-03-27 16:07 ` Ian Campbell
2014-03-20 19:07 ` [PATCH v5 15/17] xenctx: Fix handling of !guest_protected_mode Don Slutz
2014-03-21 15:09 ` Ian Campbell
2014-03-24 22:35 ` Don Slutz
2014-03-20 19:07 ` [PATCH v5 16/17] xenctx: Allow output for offline vcpu when specified Don Slutz
2014-03-21 15:11 ` Ian Campbell
2014-03-24 13:20 ` Don Slutz
2014-03-20 19:07 ` [PATCH v5 17/17] xenctx: Fixup options checking Don Slutz
2014-03-21 15:13 ` Ian Campbell
2014-03-24 14:26 ` Don Slutz
2014-03-27 16:10 ` Ian Campbell
2014-03-21 15:14 ` [PATCH v5 00/17] xenctx: Many changes Ian Campbell
2014-03-21 17:37 ` 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=53308D91.3070300@terremark.com \
--to=dslutz@verizon.com \
--cc=Don@CloudSwitch.com \
--cc=Ian.Campbell@citrix.com \
--cc=george.dunlap@eu.citrix.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.