fche [Sat, 17 Feb 2007 12:26:14 +0000 (12:26 +0000)]
2007-02-17 Frank Ch. Eigler <fche@elastic.org>
PR 4066.
* translate.cxx (var::init): Check stat scalar initialization,
just like is done for arrays.
(emit_module_exit): Check unlikely but possible null timing stat.
dsmith [Thu, 15 Feb 2007 21:55:05 +0000 (21:55 +0000)]
2007-02-15 David Smith <dsmith@redhat.com>
PR 3625.
* tapsets.cxx (dwflpp::print_locals): New function to print all
the variables/parameters of a function.
(dwflpp::find_variable_and_frame_base): Calls print_locals() when
target variable can't be found.
(dwflpp::print_members): New function to print all the members of
a union/structure.
(dwflpp::translate_components) Calls print_members() when
union/structure member target variable reference can't be found.
hunt [Wed, 7 Feb 2007 15:54:10 +0000 (15:54 +0000)]
2007-02-07 Martin Hunt <hunt@redhat.com>
* stack-ppc64.c (__stp_stack_print): Remove an old
reference to the string length and instead limit backtraces
to MAXBACKTRACE.
* stack.c: Define MAXBACKTRACE
jistone [Wed, 7 Feb 2007 02:54:30 +0000 (02:54 +0000)]
2007-02-06 Josh Stone <joshua.i.stone@intel.com>
* aux_syscalls.stp, inet_sock.stp, ioblock.stp, ioscheduler.stp,
nfs.stp, nfs_proc.stp, nfsd.stp, rpc.stp, scsi.stp, signal.stp,
socket.stp, task.stp, tcp.stp, vfs.stp: Protect pointer dereferences
with kread wherever possible. Some places still have hazards, as
marked with FIXMEs.
* errno.stp (returnstr): Don't use return in tapset C functions.
* aux_syscalls.stp (__uget_timex_m): Ditto.
* nfsd.stp (__get_fh): Ditto.
* nfs.stp, vfs.stp (<many functions>): Ditto.
* string.stp (substr): Ditto. Also make sure start index is valid.
* syscalls.stp (syscall.execve): Change __string to kernel_string.
LKET/
* nfs.stp, nfs_proc.stp, nfsd.stp, process.stp, tskdispatch.stp:
Protect pointer dereferences with kread wherever possible. Some
places still have hazards, as marked with FIXMEs.
* aio.stp (log_io_getevents): Don't use return in tapset C functions.
* timestamp.stp (set_timing_method): Ditto.
* utils.stp (filter_by_pid): Ditto.
hunt [Wed, 31 Jan 2007 20:17:02 +0000 (20:17 +0000)]
2007-01-31 Martin Hunt <hunt@redhat.com>
* 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.
hunt [Wed, 31 Jan 2007 20:13:02 +0000 (20:13 +0000)]
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().
hunt [Tue, 30 Jan 2007 19:18:06 +0000 (19:18 +0000)]
2007-01-30 Martin Hunt <hunt@redhat.com>
* io.c (_stp_vlog): Use dynamic percpu allocations
instead of very wasteful static allocations.
* print.c (_stp_print_init): Do percpu allocations
for io.c.
(_stp_print_cleanup): Free percpu allocations.
* string.c (_stp_sprintf): Overflow check needed
to be >= instead of >.
hunt [Tue, 30 Jan 2007 17:13:46 +0000 (17:13 +0000)]
2007-01-30 Martin Hunt <hunt@redhat.com>
* alloc.c (_stp_alloc_percpu): Don't implement
our own; just call __alloc_percpu with appropriate args
for the OS version.
(_stp_free_percpu): Delete.
* map.c (_stp_map_init): When calling kmalloc_node, first
call cpu_to_node() to get the proper node number.
* stat.c (_stp_stat_del): Call free_percpu()
instead of _stp_free_percpu().
hunt [Mon, 29 Jan 2007 20:42:16 +0000 (20:42 +0000)]
2007-01-29 Martin Hunt <hunt@redhat.com>
* alloc.c (_stp_kmalloc): New function. Call kmalloc
with the coirrect flags and track usage.
(_stp_kzalloc): Ditto.
* map.c: Use new alloc calls.
* print.c: Ditto.
* stat.c: Ditto.
* time.c: Ditto.
jistone [Tue, 23 Jan 2007 02:57:01 +0000 (02:57 +0000)]
2007-01-22 Josh Stone <joshua.i.stone@intel.com>
runtime/
* loc2c-runtime.h (kread, kwrite): Tweaks to work better with
reading and writing pointer values.
testsuite/
* systemtap.base/deref.stp: Rewrite test, and now also check the ability
to read/write pointers.
jistone [Sat, 20 Jan 2007 03:03:42 +0000 (03:03 +0000)]
2007-01-19 Josh Stone <joshua.i.stone@intel.com>
PR 3079
runtime/
* loc2c-runtime.h (kread, kwrite): New macros to safely read/write
values from kernel pointers. This includes a workaround for 64-bit
numbers on i386 platforms.
testsuite/
* systemtap.base/deref.stp: Use the new kread macro that should work
fine with 64-bit numbers on i386 platforms. Also expand the test to
include writes with kwrite.
* systemtap.base/deref.exp: Remove the setup_kfail.
dsmith [Fri, 12 Jan 2007 16:33:16 +0000 (16:33 +0000)]
2007-01-12 David Smith <dsmith@redhat.com>
* tapsets.cxx
(dwarf_var_expanding_copy_visitor::visit_target_symbol): Since
array behavior has changed (setting to 0 no longer deletes the
array element), we delete the internal counter array element when
providing target variable access in return probes.
hunt [Wed, 10 Jan 2007 15:07:25 +0000 (15:07 +0000)]
2007-01-10 Martin Hunt <hunt@redhat.com>
PR 3708
* map.c (str_copy): Check for NULL pointers.
(_new_map_set_int64): Don't check val for 0.
(_new_map_set_str): Don't check val for NULL.
fche [Tue, 2 Jan 2007 04:33:41 +0000 (04:33 +0000)]
2007-01-01 Frank Ch. Eigler <fche@redhat.com>
* configure.ac: Bump version to 0.5.12 for release.
* configure: Regenerated.
* NEWS, AUTHORS: Populate & repopulate.
* examples/*: Added several .stp/.txt files from the wiki.
fche [Sat, 30 Dec 2006 04:25:51 +0000 (04:25 +0000)]
2006-12-29 Frank Ch. Eigler <fche@elastic.org>
* tapsets.cxx (*group:emit_module_init): flush stdout less for timing
mode. Also, Set probe_point variable ...
* translate.cxx (emit_module_init): ... so on registration failure, a
usable error message can be generated.
fche [Sat, 30 Dec 2006 03:54:51 +0000 (03:54 +0000)]
2006-12-29 Frank Ch. Eigler <fche@redhat.com>
PR 3523.
* tapsets.cxx (common_probe_entryfn_prologue,epilogue): Restore
support for -t (benchmarking) mode.
* translate.cxx (emit_common_header,emit_module_init):Ditto.
(emit_module_exit,emit_probe): Ditto, with most meat here.
2006-12-29 Frank Ch. Eigler <fche@redhat.com>
PR 3523.
* buildok/fourteen.stp, fourteen-plus.stp: Tweak & add a test.
* systemtap.base/bench.stp: Work around randomized-ordered probes.
* systemtap.base/bench.exp: Tighten output requirements.
jistone [Fri, 22 Dec 2006 22:18:02 +0000 (22:18 +0000)]
2006-12-22 Josh Stone <joshua.i.stone@intel.com>
* stap.1.in: Document how to specify the size of global arrays.
testsuite/
* buildok/array_size.stp, parseko/array01.stp, parseko/array02.stp,
parseko/array03.stp, parseko/array04.stp, transko/array01.stp,
systemtap.base/array_size.exp, systemtap.base/array_size.stp:
Tests for specifying the size of global arrays.
jistone [Fri, 22 Dec 2006 02:34:05 +0000 (02:34 +0000)]
2006-12-21 Josh Stone <joshua.i.stone@intel.com>
PR 3671
* parse.cxx (parser::parse_global): Allow a maxsize on global arrays.
* staptree.h (struct vardecl): Add the maxsize field.
* staptree.cxx (vardecl::vardecl): Init. maxsize.
(vardecl::set_arity): Don't allow arity 0 when there's a maxsize.
(vardecl::compatible_arity): Ditto.
(vardecl::print): Include maxsize in output.
(target_symbol::print): Ditto.
* translate.cxx (struct mapvar, mapvar::mapvar): Add maxsize.
(mapvar::init): Init maps with the given maxsize if specified, else
keep using MAXMAPENTRIES.
(mapvar::set): Make the error message give the maxsize.
(mapvar::add): Ditto, and check for overflow on pmap add.
(c_unparser::getmap): Pass the maxsize from the vardecl to mapvar.
dsmith [Wed, 20 Dec 2006 15:56:14 +0000 (15:56 +0000)]
2006-12-20 David Smith <dsmith@redhat.com>
PR 3519.
* Makefile.am: Added 'examples' directory to the 'EXTRA_DIST'
variable so that the examples directory will be added to the
distribution directory. Added variables 'SAMPLE_DEST_DIR' and
'SAMPLE_SRC' and target 'dist-add-samples' to copy some of the
testsuite sample scripts to the examples directory when creating a
distribution directory.
* Makefile.in: Regenerated.
* systemtap.spec.in: Added 'examples' directory to the %doc list
so that the examples directory will be installed on a user's
system.
fche [Tue, 19 Dec 2006 22:00:15 +0000 (22:00 +0000)]
2006-12-19 Frank Ch. Eigler <fche@redhat.com>
PR 3522.
* tapsets.cxx (dwflpp::emit_address): Call
_stp_module_relocate only once per session.
Error message cleanup: duplicate elimination etc.
* session.h (saved_errors): Store a set of 'em.
(num_errors): Return set size. Remove old numeric field.
Update all callers.
* elaborate.cxx (systemtap_session::print_errors):
Print each encountered message just once.
* staptree (semantic_error): Make msg2 writeable.
Add a chain field.
* tapsets.cxx (*var_expanding*:visit_target_symbol): Set saved
semantic_error's chain field.
* elaborate.cxx (register_library_aliases, visit_foreach_loop,
visit_functioncall, derive_probes): Plop "while: ..." error
message prefix/suffix right into the semantic_error message string.
* parse.cxx (lexer::scan): Identify erroneous token better
in error message for unresolvable $N/@M command line args.
* util.h (lex_cast_hex): Use std::hex, not std::ios::hex.
2006-12-19 Frank Ch. Eigler <fche@redhat.com>
PR 3522.
* buildok/twentyfive.stp: New test for static $var access.
jistone [Tue, 19 Dec 2006 00:24:32 +0000 (00:24 +0000)]
2006-12-18 Josh Stone <joshua.i.stone@intel.com>
* systemtap.base/deref.exp, systemtap.base/deref.exp: Add a test for
successfully dereferencing pointers of various sizes. This is known to
fail on x86 for 64-bit values -- PR 3079.