| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\ |
|
| |
| |
| |
| |
| | |
* testsuite/systemtap.base/sdt_misc.exp: Make sure debug output of what
we're about to execute actually matches what we're about to execute.
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* runtime/alloc.c (_stp_kmalloc): Renamed 'MAXMEMORY' to 'STP_MAXMEMORY'.
(_stp_kzalloc): Ditto.
(_stp_vmalloc): Ditto.
(_stp_alloc_percpu): Ditto.
(_stp_kmalloc_node): Ditto.
* testsuite/systemtap.base/maxmemory.exp: New test for STP_MAXMEMORY.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit 73b5e9 "Make sure loc2c declare_noncontig_union for different locs
don't overlap", wasn't complete. It only took into account having a piece
becuase of a noncontiguous loc and a constant loc together. But pieces can
be nested deeper (newer gcc outputs multiple constant locations for one
piece on 32bit systems). This patch keeps track of the piece declaration
depth. Another approach could have been to have each sub-piece in its own
local scope, but keeping track of the depth and naming the temporary unions
distinct fitted the current code better. It currently only supports a depth
of 10. An error will be emitted if a location construct needs more than 10
pieces to be assembled.
* loc2c.c (declare_noncontig_union): Take depth argument. Always use the
same name for the union (u_pieces<depth>).
(translate_base_fetch): Take depth argument. Use it to calculate union
names.
(translate_base_store): Likewise.
(c_translate_fetch): Pass in depth zero.
(c_translate_store): Likewise.
(c_translate_pointer): Likewise.
(c_translate_pointer_store): Likewise.
|
| | |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The fix for PR10923 (fafeaf) wasn't completely correct. All cfa lookups
need to be done through the relative pc (without bias) of the module we
are looking in.
* dwflpp.cxx (translate_location): Call get_cfa_ops with relative pc.
|
| | |
| | |
| | |
| | | |
Fix typos and comment unused text.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* runtime/alloc.c (_stp_mem_debug_validate): New debug function.
(_stp_kmalloc): Added MAXMEMORY code to check size of memory used by
module.
(_stp_kzalloc): Ditto.
(_stp_vmalloc): Ditto.
(_stp_alloc_percpu): Ditto.
(_stp_kmalloc_node): Ditto.
|
| | |
| | |
| | |
| | |
| | | |
* systemtap.spec: Use %global in place of %define throughout,
it's the recommended syntax.
|
| |/
| |
| |
| | |
* testsuite/systemtap.examples/profiling/graphcall.stp : new file
|
| |\ |
|
| | |
| | |
| | |
| | | |
* testsuite/systemtap.base/declaration.exp: Remove test.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
publican isn't make -j safe. So cheat a little, always create pdf and html
at the same time, then make html depend on pdf build for copying.
* doc/beginners/Makefile.am ($(SBG).pdf): Also generate html version.
($(SBG).html): Depend on pdf version, then copy.
* doc/beginners/Makefile.in: Regenerated.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* sdt.h (UTRACE_SDT): Remove.
* tapset-utrace.cxx (utrace_derived_probe): Remove has_library and library.
(utrace_derived_probe_group::emit_probe_decl): Remove mmap_callback,
sdt_sem_offset, and sdt_sem_address.
(utrace_derived_probe_group::emit_module_decls): Remove sdt_sem_offset and
sdt_sem_address support.
* tapsets.cxx (sdt_var_expanding_visitor): Remove utrace_probe.
(sdt_query::handle_query_module) Remove utrace_type.
(sdt_query::convert_probe): Likewise.
* postgres.exp: Remove utrace testing.
* sdt.exp: Likewise.
* sdt_misc.exp: Likewise.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This implements proper unwinding from uprobes in the presence of
uretprobe trampolines.
* runtime/stack.c (_stp_stack_print): Rework for uprobe context case
and refactor a bit.
* runtime/uprobes2/uprobes.h (GET_PC_URETPROBE_NONE): new constant
* runtime/uprobes2/uprobes.c (uprobe_get_pc): Support translating the
trampoline function from uprobe context in addition to uretprobe
context.
* runtime/uprobes/uprobes.h (GET_PC_URETPROBE_NONE): ditto
* runtime/uprobes/uprobes.c (uprobe_get_pc): ditto
* tapsets.cxx (uprobe_derived_probe_group::emit_module_decls):
Initialize ri in context to GET_PC_URETPROBE_NONE in generated
enter_uprobe_probe.
* testsuite/systemtap.context/fib.stp: Add an option to do a backtrace
on function entry.
* testsuite/systemtap.context/fib.exp: Test backtrace in function
entry (uprobe) probes.
|
|/
|
|
|
|
|
| |
Pass partial options to the server instead of complaining about
them in the client.
Update known failures from buildok in server.exp.
|
| |
|
|
|
|
| |
The function sys32_mmap2 is removed since 2.6.33.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac: Add --enable-publican and --with-publican-brand.
Setup "shadow" directory doc/beginners.
* Makefile.in: Regenerated.
* configure: Regenerated.
* doc/Makefile.am (SUBDIRS): Add beginners.
* doc/Makefile.in: Regenerated.
* doc/SystemTap_Beginners_Guide/en-US/Book_Info.xml (productname):
Set to Systemtap.
(productnumber): Set to 1.0.
* SystemTap_Beginners_Guide/en-US/*.xml: Replace includes from
extras/testsuite to ../testsuite,
* doc/SystemTap_Beginners_Guide/publican.cfg: Moved to ...
* doc/SystemTap_Beginners_Guide/publican.cfg.in: ... here.
* doc/SystemTap_Beginners_Guide/Makefile: Removed.
* doc/SystemTap_Beginners_Guide/old-syncandbuild.sh: Removed.
* doc/SystemTap_Beginners_Guide/syncandbuild.sh: Removed.
* doc/SystemTap_Tapset_Reference/Makefile.in: Regenerated.
* doc/beginners/Makefile.am: New makefile.
* doc/beginners/Makefile.in: New generated file.
* grapher/Makefile.in: Regenerated.
* systemtap.spec: Add with_publican and publican_brand.
|
|
|
|
|
|
| |
* grapher/CairoWidget.cxx (CairoTextBox::draw): Use
boost::is_from_range instead of is_any_of. Reports on the net
suggest that is_any_of triggers a compiler bug.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Older kernels don't have all GFP constants defined, and the fallback
kernel function probe fallbacks don't have the same dwarf variable
names as the kernel trace point probes. So replace them with variables
that are available. bytes_alloc was sometimes a long and sometimes a
string, this caused scripts to fail depending on which alternative was
chosen for a particular kernel. So make it a long always.
This isn't a full solution since kmalloc is always inlined which makes
the kernel.function("kmalloc").return probe fail.
* tapset/memory.stp: Define __GFP_THISNODE, __GFP_RECLAIMABLE,
GFP_TEMPORARY, GFP_HIGHUSER_MOVABLE and GFP_THISNODE when not yet
defined.
(__vm.kmalloc.kp): Use $flags, not $gfp_flags. Set bytes_alloc equal
to bytes_req.
(__vm.kmem_cache_alloc.kp): Likewise. And use $cachep->buffer_size
for bytes_req.
(__vm.kmalloc_node.kp): Likewise.
(__vm.kmem_cache_alloc_node.kp): Likewise.
(__vm.kfree.kp): Use $ibjp for ptr, not $return.
(__vm.kmem_cache_free.kp): Likewise.
* testsuite/buildok/vm.tracepoints.stp: Move vm.kmalloc test to...
* testsuite/buildok/vm.tracepoints.kmalloc.stp: ... here.
|
|
|
|
|
|
|
|
|
|
|
| |
This function now also does user space address relocation. The connection
with module loading/unloading was removed in commit 1b94bf which made all
symbol tables emitted at compile time. _stp_module_relocate is called from
the dwarf unwinder, and when doing some of the symbol lookup through
dwflpp::emit_adress now.
* runtime/sym.c (_stp_module_relocate): Remove last, last_sec and last_tsk
caching and invalidation code.
|
|
|
|
|
| |
Older kernels didn't define these constants, which are only used in
the tapset/scsi.stp describe_device_state() function.
|
|
|
|
| |
last_tsk was checked but never set. Noticed by Wenji Huang.
|
| |
|
| |
|
|
|
|
|
| |
Older kernels might not have these defines available, so define them
if not yet there.
|
| |
|
|\ |
|
| |
| |
| |
| |
| | |
* runtime/stack-ppc.c (__stp_stack_print): Define STACK_FRAME_LR_SAVE,
STACK_FRAME_REGS_MARKER,STACK_FRAME_MARKER, etc.
|
| |
| |
| |
| |
| |
| | |
* translate.cxx (translate_pass): Don't #include <access_blah.>
* tapsets.cxx, tapset-utrace.cxx: Replace __access_process_vm()
calls with get_user() / put_user() respectively.
|
| | |
|
| |
| |
| |
| | |
* runtime/stack-ia64.c (__stp_stack_print): Added new 'ri' parameter.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
* tapset/inet_sock.stp : Add prefix "inet_" to field.
* tapset/ip.stp : Ditto.
* tapset/tcp.stp : Ditto.
* tapset/tcpmib.stp : Ditto.
|
| |
| |
| |
| | |
that got left out in earlier commit 0c487e433fd6343e49b1e9dbc6492f38cfe26143.
|
| |
| |
| |
| | |
* runtime/task_finder.c: Fixed last checkin.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* NEWS: Set version number.
* configure.ac: Incremented version number.
* systemtap.spec: Incremented version number and added changelog entry.
* testsuite/configure.ac: Ditto.
* Makefile.in: Regenerated.
* aclocal.m4: Ditto.
* configure: Ditto.
* doc/Makefile.in: Ditto.
* doc/SystemTap_Tapset_Reference/Makefile.in: Ditto.
* grapher/Makefile.in: Ditto.
* testsuite/Makefile.in: Ditto.
* testsuite/aclocal.m4: Ditto.
* testsuite/configure: Ditto.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* tapset-utrace.cxx (utrace_derived_probe_group::emit_module_decls):
Handles new utrace api.
* runtime/itrace.c (usr_itrace_report_signal): Ditto.
(usr_itrace_report_clone): Ditto.
(usr_itrace_report_death): Ditto.
* runtime/task_finder.c (__stp_utrace_task_finder_report_clone): Ditto.
(__stp_utrace_task_finder_report_exec): Ditto.
(__stap_utrace_task_finder_report_death): Ditto.
(__stp_utrace_task_finder_target_death): Ditto.
(__stp_utrace_task_finder_target_quiesce): Ditto.
(__stp_utrace_task_finder_target_syscall_entry): Ditto.
(__stp_utrace_task_finder_target_syscall_exit): Ditto.
* runtime/uprobes2/uprobes.c (uprobe_report_signal): Ditto.
(uprobe_report_quiesce): Ditto.
(uprobe_report_exit): Ditto.
(uprobe_report_clone): Ditto.
(uprobe_report_exec): Ditto.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We already had code in place to try a deref on the requested memory
buffer, but it was missing the static-precision case. Thus, it was
possible to craft an address that would pass the check on the first byte
but would pagefault at the end of the buffer.
While we're at it, we should also be limiting the number of bytes in
such a read, so even legitimately-huge buffers won't chew up kernel
time. I've arbitrarily chosen 1024 as the limit, but we can revisit
that later. (see also PR10490)
TODO: we need a reliable testcase where a starting address is valid but
the end address is bogus. In PR11112, the reproducer was using a huge
precision to run off the heap, but we need something that will
consistently work even with <1024 length.
|
| | |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | | |
* mysql.exp (stap-mysql.sh): Shutdown properly.
* xulrunner.exp: Run depending on SYSTEMTAP_TESTAPPS env
(stap-xul.sh): Fix xulrelease. Add mozjs-dtrace.o to js link line.
|
| | |
| | |
| | |
| | |
| | |
| | | |
* parse.cxx (parser::parse_statement): Squash semicolon after non-block-like
statements.
* testsuite/buildok/semicolon.stp: New test.
|