From mboxrd@z Thu Jan 1 00:00:00 1970 From: Don Slutz Subject: [PATCH v3 07/16] xenctx: Add command line option -t (--tag-stack-dump) Date: Mon, 11 Nov 2013 13:15:13 -0500 Message-ID: <1384193722-2916-8-git-send-email-dslutz@terremark.com> References: <1384193722-2916-1-git-send-email-dslutz@terremark.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1384193722-2916-1-git-send-email-dslutz@terremark.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Ian Campbell , Stefano Stabellini , George Dunlap , Don Slutz , Ian Jackson , Jan Beulich List-Id: xen-devel@lists.xenproject.org From: Don Slutz If specified, add stack address to dump. Here is an example: Stack: ffffffff803ddf90: ffffffff80048d19 0000000000200800 ffffffff803e7801 0000000000086800 ffffffff803ddfb0: 0000000000000000 ffffffff80430720 ffffffff803e722f 80008e000010019c ffffffff803ddfd0: 00000000ffffffff 0000000000000000 0000000000000000 0000000000200000 ffffffff803ddff0: 0000000000000000 0000000000000000 Signed-off-by: Don Slutz --- Changed since v2: * Add command line option to control this. * More info in commit message. tools/xentrace/xenctx.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tools/xentrace/xenctx.c b/tools/xentrace/xenctx.c index 9aae658..a88c347 100644 --- a/tools/xentrace/xenctx.c +++ b/tools/xentrace/xenctx.c @@ -39,6 +39,7 @@ static struct xenctx { int bytes_per_line; int lines; int decode_as_ascii; + int tag_stack_dump; int all_vcpus; int self_paused; xc_dominfo_t dominfo; @@ -668,6 +669,10 @@ static int print_stack(vcpu_guest_context_any_t *ctx, int vcpu, int width) int j = 0; int k; + if (xenctx.tag_stack_dump) { + print_stack_word(stack, width); + printf(":"); + } while(stack < stack_limit && stack < stack_pointer(ctx) + i * xenctx.bytes_per_line) { p = map_page(ctx, vcpu, stack); @@ -867,13 +872,15 @@ static void usage(void) printf(" change the number of lines output for Stack.\n"); printf(" -D, --decode-as-ascii\n"); printf(" add a decode of Stack dump as ascii.\n"); + printf(" -t, --tag-stack-dump\n"); + printf(" add address on each line of Stack dump.\n"); } int main(int argc, char **argv) { int ch; int ret; - static const char *sopts = "fs:hak:SC2b:l:D"; + static const char *sopts = "fs:hak:SC2b:l:Dt"; static const struct option lopts[] = { {"stack-trace", 0, NULL, 'S'}, {"symbol-table", 1, NULL, 's'}, @@ -881,6 +888,7 @@ int main(int argc, char **argv) {"kernel-start", 1, NULL, 'k'}, {"two-pages", 0, NULL, '2'}, {"decode-as-ascii", 0, NULL, 'D'}, + {"tag-stack-dump", 0, NULL, 't'}, {"bytes-per-line", 1, NULL, 'b'}, {"lines", 1, NULL, 'l'}, {"all", 0, NULL, 'a'}, @@ -915,6 +923,9 @@ int main(int argc, char **argv) case 'D': xenctx.decode_as_ascii = 1; break; + case 't': + xenctx.tag_stack_dump = 1; + break; case 'b': xenctx.bytes_per_line = strtol(optarg, NULL, 0); if (xenctx.bytes_per_line < 4 || -- 1.8.4