From 75369330bca225a873cade3ea3f9829450c9fb07 Mon Sep 17 00:00:00 2001 From: hunt Date: Wed, 31 Jan 2007 20:17:02 +0000 Subject: [PATCH] 2007-01-31 Martin Hunt * context.stp (print_backtrace): Modify for new _stp_stack_print. (backtrace): Just use _stp_stack_snprint(). (print_stack): Use new _stp_print* functions. (probefunc): Use _stp_symbol_snprint. --- tapset/ChangeLog | 8 ++++++++ tapset/context.stp | 23 +++++++++-------------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/tapset/ChangeLog b/tapset/ChangeLog index 09e13dd97..7131e4726 100644 --- a/tapset/ChangeLog +++ b/tapset/ChangeLog @@ -1,3 +1,11 @@ +2007-01-31 Martin Hunt + + * context.stp (print_backtrace): Modify for new + _stp_stack_print. + (backtrace): Just use _stp_stack_snprint(). + (print_stack): Use new _stp_print* functions. + (probefunc): Use _stp_symbol_snprint. + 2007-01-26 Josh Stone * vfs.stp (ppos_pos): Change deref() to kread() so i686 passes. diff --git a/tapset/context.stp b/tapset/context.stp index efb78659b..7efb6db7e 100644 --- a/tapset/context.stp +++ b/tapset/context.stp @@ -1,5 +1,5 @@ // context tapset -// Copyright (C) 2005, 2006 Red Hat Inc. +// Copyright (C) 2005, 2006, 2007 Red Hat Inc. // Copyright (C) 2006 Intel Corporation. // // This file is part of systemtap, and is free software. You can @@ -15,18 +15,14 @@ function print_regs () %{ function print_backtrace () %{ if (CONTEXT->regs) { - _stp_stack_print(CONTEXT->regs, CONTEXT->pi); + _stp_stack_print(CONTEXT->regs, 1, CONTEXT->pi); } %} function backtrace:string () %{ /* pure */ - if (CONTEXT->regs) { - /* XXX: this won't be necessary when runtime and translator */ - /* agree on what a string is. */ - String str = _stp_string_init (0); - _stp_stack_sprint (str, CONTEXT->regs, 0, CONTEXT->pi); - strlcpy (THIS->__retvalue, _stp_string_ptr(str), MAXSTRINGLEN); - } else + if (CONTEXT->regs) + _stp_stack_snprint (THIS->__retvalue, MAXSTRINGLEN, CONTEXT->regs, 0, CONTEXT->pi); + else strlcpy (THIS->__retvalue, "", MAXSTRINGLEN); %} @@ -78,9 +74,9 @@ function print_stack(stk:string) %{ char *ptr = THIS->stk; char *tok = strsep(&ptr, " "); while (tok && *tok) { - _stp_print_cstr(" "); + _stp_print_char(' '); _stp_symbol_print (simple_strtol(tok, NULL, 16)); - _stp_print_cstr("\n"); + _stp_print_char('\n'); tok = strsep(&ptr, " "); } %} @@ -112,8 +108,7 @@ function probefunc:string () %{ /* pure */ #else ((unsigned long)REG_IP(CONTEXT->regs) >= (unsigned long)PAGE_OFFSET)) { #endif - _stp_symbol_sprint_basic(THIS->__retvalue, MAXSTRINGLEN, - REG_IP(CONTEXT->regs)); + _stp_symbol_snprint(THIS->__retvalue, MAXSTRINGLEN, REG_IP(CONTEXT->regs)); if (THIS->__retvalue[0] == '.') /* powerpc symbol has a dot*/ strlcpy(THIS->__retvalue,THIS->__retvalue + 1,MAXSTRINGLEN); } else { @@ -184,7 +179,7 @@ function caller_addr:long () %{ /* pure */ # only for return probes at this time. function caller:string() %{ /* pure */ if (CONTEXT->pi) - _stp_symbol_sprint_basic( THIS->__retvalue, MAXSTRINGLEN, + _stp_symbol_snprint( THIS->__retvalue, MAXSTRINGLEN, (unsigned long)_stp_ret_addr_r(CONTEXT->pi)); else strlcpy(THIS->__retvalue,"unknown",MAXSTRINGLEN); -- 2.43.5