| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |\ \ \ \ \ \ \ \ |
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
2009-03-12 David Smith <dsmith@redhat.com>
* transport/ring_buffer.c (__stp_alloc_ring_buffer): Updated
buffer size.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
2009-03-11 David Smith <dsmith@redhat.com>
* print_new.c (stp_print_flush): Updated MAX_RESERVE_SIZE.
* transport/ring_buffer.c (__stp_alloc_ring_buffer): Reserves
more space.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
2009-03-11 David Smith <dsmith@redhat.com>
* systemtap.printf/end1.exp: The test fails when stap fails.
* systemtap.printf/end1b.exp: Ditto.
* systemtap.printf/mixed_out.exp: Ditto.
* systemtap.printf/mixed_outb.exp: Ditto.
* systemtap.printf/out1.exp: Ditto.
* systemtap.printf/out1b.exp: Ditto.
* systemtap.printf/out2.exp: Ditto.
* systemtap.printf/out2b.exp: Ditto.
* systemtap.printf/out3.exp: Ditto.
* systemtap.printf/out3b.exp: Ditto.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
2009-03-11 David Smith <dsmith@redhat.com>
* print_new.c (stp_print_flush): Breaks up the buffer into smaller
pieces (since the ring_buffer likes lots of small events, not one
large one).
* transport/ring_buffer.c (__stp_alloc_ring_buffer): Reserves
space for struct _stp_entry.
(_stp_data_poll_trace): New function.
(_stp_data_write_commit): Wakes up any tasks waiting on data.
|
| | | | | | | | | | |
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
2009-03-09 David Smith <dsmith@redhat.com>
* print_new.c (stp_print_flush): Calls _stp_data_write_reserve()
and _stp_data_write_commit().
* transport/ring_buffer.c (__stp_alloc_ring_buffer): Sets up a
default buffer size of STP_BUFFER_SIZE;
(trace_seq_reset): New function.
(peek_next_entry): New function.
(__find_next_entry): New function.
(find_next_entry_inc): New function.
(_stp_data_read_trace): Uses find_next_entry_inc() to get the next
entry, then calls _stp_entry_to_user() to copy it to the user's
buffer, then calls ring_buffer_consume() to consume it.
(_stp_data_write_reserve): New function.
(_stp_data_write_commit): New function.
* transport/transport.c (_stp_transport_close): Calls functions
that were ifdef'ed out.
* transport/transport.h (struct _stp_entry): Added _stp_entry
definition and _stp_data_write_reserve()/_stp_data_write_commit()
prototypes.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
2009-03-04 David Smith <dsmith@redhat.com>
* runtime.h: Added _stp_exit() prototype.
* transport/ring_buffer.c: New file.
* transport/transport.c: Removed unneeded utt_trace lines.
Includes transport/ring_buffer.c.
(_stp_transport_fs_init): Calls _stp_transport_data_fs_init().
(_stp_transport_fs_close): Calls _stp_transport_data_fs_close().
* transport/transport.h: Added prototypes.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
2009-02-25 David Smith <dsmith@redhat.com>
* debug.h: Removed unused variable '_stp_transport_state'.
* print_new.c (stp_print_flush): Ifdef'ed out call to
utt_reserve().
* runtime.h: Added _stp_warn() prototype.
* transport/control.c: Includes control.h, mempool.c, and
symbols.c. Renamed '_stp_attached' to '_stp_ctl_attached'.
* transport/control.h: Removed _stp_pool_q declaration.
* transport/debugfs.c (_stp_register_ctl_channel_fs): Uses
_stp_get_module_dir().
* transport/transport.c: Cleanup.
* transport/transport.h: Ditto.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
2009-02-24 David Smith <dsmith@redhat.com>
* print.h: New file.
* print.c: Includes new print.h file.
* print_new.c (stp_print_flush): Commented out some code that
needs replacing.
* sym.c: Includes sym.h.
* transport/debugfs.c: Includes transport.h.
* transport/relayfs.c: Updated _stp_get_root_dir() call.
* transport/transport.c: Ifdef'ed out most setup.
* transport/transport.h: Ifdef'ed out all but basics.
* transport/utt.c (utt_create_tree): Updated _stp_get_root_dir()
call.
* transport/utt.h: Commented out 'rchan' in struct utt_trace.
(utt_reserve): Ifdef'ed out guts.
|
| |_|_|_|_|_|_|_|/
|/| | | | | | | | |
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Revise acquiring of pid and ppid in fork.return probe -- use returnval()
and pid() instead of pid() and ppid() respectively. Add pid removal on
exit syscall. Use dwarfless syscall probe aliases. Correct formatting.
Signed-off-by: Josh Stone <jistone@redhat.com>
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
* translate.cxx (translate_pass): Emit module_parm stuff at the very end.
* testsuite/buildok/null.stp: New test.
|
| |_|_|_|_|_|_|/
|/| | | | | | | |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
* dwflpp.cxx (relocate_address): Adjust reloc_addr at start, not afterwards.
|
| |_|_|_|_|_|/
|/| | | | | |
| | | | | | |
| | | | | | | |
* sdt.h (STAP_PROBE1): Add cast of parm1 for narrower signed types.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* testsuite/systemtap.base/flightrec3.exp: Fixed for slower systems.
|
| | | | | | | |
|
| |_|_|_|_|/
|/| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Previous implementation was error-prone, because allowed returning empty
tokens (mimiced strsep()), which is fine if there is a NULL semantic.
Unfortunately SystemTap doesn't provide it in scripts and has only blank
string (""), therefore testing against it was misleading.
The solution is to return only non-empty tokens (mimic strtok()).
* tapset/string.stp: Fix tokenize.
* testsuite/systemtap.string/tokenize.stp: Improve and add case with
more than one delimiter in the delim string.
* testsuite/systemtap.string/tokenize.exp: Ditto.
* stapfuncs.3stap.in: Update tokenize description.
* doc/langref.tex: Ditto.
Signed-off-by: Josh Stone <jistone@redhat.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* testsuite/systemtap.base/flightrec3.exp: Improved error handling.
|
|\ \ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* dwflpp.cxx (relocate_address): For .dynamic section addresses adjust for
module bias.
|
|/ / / / / / |
|
| |_|_|_|/
|/| | | |
| | | | |
| | | | |
| | | | | |
* tapsets.cxx (dwarf_builder::build): pass probe_table.probe_name into
the sdt_var_expander instead of .mark_name, so wildcards are resolved.
|
|\ \ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
tapsets.cxx (dwarf_builder::build): Special case listing mode for kprobe and utrace.
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | | |
* runtime/runtime.h: Includes time.c.
* runtime/transport/transport.c: Removed time.c inclusion.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* tapsets.cxx (dwarf_builder) Add probes_handled.
(dwarf_builder::build): Use probes_handled to not emit duplicates.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* testsuite/lib/systemtap.exp (get_system_info): Remove possible newlines
from GCC_Version string.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Prints the gcc being used and full version. Also adds short version
number to systemtap.sum file (plus full version string). Will make
comparing failures based on compiler version being used easier.
* testsuite/lib/systemtap.exp (print_systemtap_version): Also print
location and full version of gcc being used.
(get_system_info): Get gcc version number and long version string.
* testsuite/lib/stap_run.exp (print_system_info): Output GCC version.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* tapset/context.stp: Add pgrp() function.
* testsuite/buildok/context_test.stp: Add pgrp() call.
* stapfuncs.3stap.in: Describe pgrp() and sid().
Signed-off-by: Josh Stone <jistone@redhat.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* sdt.h (EXPERIMENTAL_UTRACE_SDT, EXPERIMENTAL_KPROBE_SDT): New probe
point macros.
* dtrace: Add support for creating type debug info, currently invoked
with --types.
* tapsets.cxx (probe_table::convert_probe): New.
(probe_table::convert_location): New.
(dwarf_builder::build): Use it to simplify probe point handling.
* sdt.exp (pbtype_flags, pbtype_mssgs): New to also test kprobe and utrace.
* static_uprobes.exp (pbtype_flags, pbtype_mssgs): New to also test kprobe and utrace.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The original logic was a little confused. It could end up searching the
separate debuginfo twice instead of falling back to the main elf file.
Now we explicitly search the main elf file first (where the .probes
section really should be) and only then fall back to the separate
debuginfo file.
* tapsets.cxx (dwarf_builder::probe_table::probe_table): Search main
elf file first, then fall back on separate debuginfo file if necessary.
* testsuite/systemtap.exelib/exelib.exp: Enable mark.tcl testcase.
main elf file or the debuginfo file, but would interpret
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* testsuite/systemtap.exelib/exelib.exp: Compile against sdt.h.
* testsuite/systemtap.exelib/uprobes_exe.c: Add main_count probe mark.
* testsuite/systemtap.exelib/uprobes_lib.c: Add func_count probe mark.
* testsuite/systemtap.exelib/mark.tcl: New test.
* testsuite/systemtap.exelib/mark.stp: New test tapset.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The testcase now uses noinline, an empty asm statement and a volatile
variable to prevent the function getting inlined, being totally unrolled
or the recursive call being replaced with an inner-iteration.
This does defeat part of the testcase though, which was testing unwinding
through an optimized recursive function. But it seems the best we can do.
* testsuite/systemtap.exelib/exelib.exp: Add -O3 to the mix.
* testsuite/systemtap.exelib/uprobes_exe.c: Use volatile bar and mark
main_func noinline.
* testsuite/systemtap.exelib/uprobes_lib.c: Use volatile foo and mark
lib_func noinline.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* tapsets.cxx (dwarf/kprobe_derived_...::emit_decl/init): Define
and use KRETPROBE instead of hard-coded max(...) values. Raise
the default 50%.
* testsuite/buildok/thirtytwo.stp: New test.
|
| | | | |
| | | | |
| | | | |
| | | | | |
* util.h (lex_cast_qstring): Use unsigned rather than signed chars.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Tests uprobes placed in executables and shared libraries on different
arches (32-on-64 currently disabled), gcc/g++, optimizations (currently
disabled), prelinked libs (currently disabled), seperate libs/exe debuginfo
and pie executables.
* testsuite/systemtap.base/uprobes_exe.c: Moved to...
* testsuite/systemtap.exelib/uprobes_exe.c: From systemtap.base.
* testsuite/systemtap.base/uprobes_lib.c: Moved to...
* testsuite/systemtap.exelib/uprobes_lib.c: From systemtap.base.
* testsuite/systemtap.base/uprobes_lib.exp: Rewritten as...
* testsuite/systemtap.exelib/lib.tcl: From uprobes_lib.exp.
* testsuite/systemtap.base/uprobes_lib.stp: Rewritten as...
* testsuite/systemtap.exelib/lib.stp: From uprobes_lib.stp.
* testsuite/systemtap.base/uprobes_uname.exp: Rewritten as...
* testsuite/systemtap.exelib/uname.tcl: From uprobes_uname.exp.
* testsuite/systemtap.base/uprobes_uname.stp: Rewritten as...
* testsuite/systemtap.exelib/uname.stp: From uprobes_uname.stp.
* testsuite/systemtap.base/uprobes_ustack.exp: Rewritten as...
* testsuite/systemtap.exelib/ustack.tcl: From uprobes_ustack.exp.
* testsuite/systemtap.base/uprobes_ustack.stp: Rewritten as...
* testsuite/systemtap.exelib/ustack.stp: From uprobes_ustack.stp.
* testsuite/systemtap.exelib/exelib.exp: New exelib uprobes framework.
* testsuite/systemtap.exelib/cleanup.tcl: New file.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |_|_|/
|/| | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
|\ \ \ \ |
|
| | | | | |
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When anything in systemtap_module_init fails, and we return non-zero,
then the module load is aborted. The normal module unload path
(systemtap_module_exit) is not even attempted, so we need to make sure
that all partially-allocated resources are returned.
Our timer callbacks for the gettimeofday subsystem are a classic example
of this error. If we don't unregister the timers before aborting init,
they will later be called and cause a kernel fault.
We also were neglecting to free the percpu context. A memory leak is
less harmful, but that's fixed now too.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When an instance of an alias has a condition, that condition gets
propagated to each of the locations that the alias defines. However,
the copy of the location list was not a deep copy, and so all other
instances of the alias would also incorrectly receive the condition.
This patch makes the location list copy a little deeper, and adds a
test case which demonstrates the issue.
|
| | | |
| | | |
| | | |
| | | | |
* translate.cxx (emit_symbol_data): Use ~0 instead of -1 for big unsigned constant
|