summaryrefslogtreecommitdiffstats
path: root/runtime/sym.c
diff options
context:
space:
mode:
authorhunt <hunt>2007-01-31 20:13:02 +0000
committerhunt <hunt>2007-01-31 20:13:02 +0000
commit1b276fc2991255d65c28fa2df03b7b9ecc7d4f7b (patch)
tree09dddc7115d2691e05ee392c2316c0793013a709 /runtime/sym.c
parentdcc4fec4fbb6caddbc82c758f57c014cfc37d088 (diff)
downloadsystemtap-steved-1b276fc2991255d65c28fa2df03b7b9ecc7d4f7b.tar.gz
systemtap-steved-1b276fc2991255d65c28fa2df03b7b9ecc7d4f7b.tar.xz
systemtap-steved-1b276fc2991255d65c28fa2df03b7b9ecc7d4f7b.zip
2007-01-31 Martin Hunt <hunt@redhat.com>
* string.c (_stp_string_init): Deleted. (_stp_sprintf): Deleted. (_stp_vsprintf): Deleted. (_stp_string_cat_cstr): Deleted. (_stp_string_cat_string): Deleted. (_stp_string_cat_char): Deleted. (_stp_string_ptr): Deleted. (_stp_string_cat): Deleted. (_stp_snprintf): Moved from vsprintf.c. (_stp_vscnprintf): Moved from vsprintf.c. * string.h (STP_STRING_SIZE): Deleted. (STP_NUM_STRINGS): Deleted. Remove all references to type "String". * vsprintf.c (_stp_vscnprintf): Moved to string.c. (_stp_snprintf): Moved to string.c * sym.c (_stp_symbol_sprint): Replaced with _stp_symbol_print, which writes to the print buffer. (_stp_symbol_sprint_basic): Replaced with _stp_symbol_snprint. * runtime.h: Include io.c. * stat-common.c: Use new _stp_print* functions. * stat.c: Ditto. * regs.c: Renamed to regs-ia64.c. * current.c: Renamed regs.c. * regs-ia64.c: New file (renamed from regs.c). * stack.c (_stp_stack_sprint): Renamed _stp_stack_print and now just prints to the print buffer. Calls __stp_stack_print instead of __stp_stack_sprint. (_stp_stack_snprint): New function. Calls _stp_stack_print and then copies the print buffer into a string. (_stp_stack_printj): Deleted. (_stp_ustack_sprint): Deleted. * stack-*.c: Rewritten to print instead of writing to strings. Uses new _stp_print* functions. * print.c (_stp_printf): Create new function instead of macro. (_stp_print): Ditto. (_stp_print_char): New function. * map.c: Use _stp_print() and _stp_print_char() instead of _stp_print_cstr(). * io.c (_stp_vlog): Use _stp_print() instead of _stp_string_cat_cstr(). * copy.c (_stp_string_from_user): Deleted.
Diffstat (limited to 'runtime/sym.c')
-rw-r--r--runtime/sym.c52
1 files changed, 15 insertions, 37 deletions
diff --git a/runtime/sym.c b/runtime/sym.c
index 2a823ca9..1e9de765 100644
--- a/runtime/sym.c
+++ b/runtime/sym.c
@@ -1,6 +1,6 @@
/* -*- linux-c -*-
* Symbolic Lookup Functions
- * Copyright (C) 2005 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
@@ -142,14 +142,13 @@ static const char * _stp_kallsyms_lookup (
return NULL;
}
-/** Write addresses symbolically into a String
- * @param str String
+/** Print an address symbolically.
* @param address The address to lookup.
* @note Symbolic lookups should not normally be done within
* a probe because it is too time-consuming. Use at module exit time.
*/
-String _stp_symbol_sprint (String str, unsigned long address)
+void _stp_symbol_print (unsigned long address)
{
char *modname;
const char *name;
@@ -158,36 +157,17 @@ String _stp_symbol_sprint (String str, unsigned long address)
name = _stp_kallsyms_lookup(address, &size, &offset, &modname, namebuf);
- _stp_sprintf (str, "%p", (void *)address);
+ _stp_printf ("%p", (void *)address);
if (name) {
if (modname)
- _stp_sprintf (str, " : %s+%#lx/%#lx [%s]", name, offset, size, modname);
+ _stp_printf (" : %s+%#lx/%#lx [%s]", name, offset, size, modname);
else
- _stp_sprintf (str, " : %s+%#lx/%#lx", name, offset, size);
+ _stp_printf (" : %s+%#lx/%#lx", name, offset, size);
}
- return str;
}
-
-/** Print addresses symbolically to the print buffer.
- * @param address The address to lookup.
- * @note Symbolic lookups should not normally be done within
- * a probe because it is too time-consuming. Use at module exit time.
- */
-
-#define _stp_symbol_print(address) _stp_symbol_sprint(_stp_stdout,address)
-
-
-/** Write addresses symbolically into a char buffer
- * @param str Destination buffer
- * @param len Length of destination buffer
- * @param address The address to lookup.
- * @note Symbolic lookups should not normally be done within
- * a probe because it is too time-consuming. Use at module exit time.
- */
-
-const char *_stp_symbol_sprint_basic (char *str, size_t len, unsigned long address)
+void _stp_symbol_snprint (char *str, size_t len, unsigned long address)
{
char *modname;
const char *name;
@@ -195,18 +175,16 @@ const char *_stp_symbol_sprint_basic (char *str, size_t len, unsigned long addre
char namebuf[KSYM_NAME_LEN+1];
if (len > KSYM_NAME_LEN) {
- name = _stp_kallsyms_lookup(address, &size, &offset, &modname, str);
- if (!name)
- snprintf(str, len, "%p", (void *)address);
+ name = _stp_kallsyms_lookup(address, &size, &offset, &modname, str);
+ if (!name)
+ snprintf(str, len, "%p", (void *)address);
} else {
- name = _stp_kallsyms_lookup(address, &size, &offset, &modname, namebuf);
- if (name)
- strlcpy(str, namebuf, len);
- else
- snprintf(str, len, "%p", (void *)address);
+ name = _stp_kallsyms_lookup(address, &size, &offset, &modname, namebuf);
+ if (name)
+ strlcpy(str, namebuf, len);
+ else
+ snprintf(str, len, "%p", (void *)address);
}
-
- return str;
}
/** @} */