| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|/
|
|
|
|
|
| |
cross compilation.
Server correctly advertises itself wrt -r and -a.
Fix bug in stap-server: fatal function was potentially recursive.
|
| |
|
|
|
|
|
|
| |
* NEW: Mention DW_OP_{implicit,stack}_value support.
* testsuite/systemtap.base/vta-test.exp: Don't XFAIL. Use staprun2.
* testsuite/systemtap.base/vta-test.stp: Enable all probes.
|
|
|
|
| |
* loc2c.c (declare_noncontig_union): Only open struct when loc_noncontiguous.
|
|
|
|
|
| |
* loc2c.c [!_ELFUTILS_PREREQ (0,142)]
(DW_OP_stack_value, DW_OP_implicit_value): Define as macros.
|
|
|
|
|
| |
* dwflpp.cxx (translate_location) [!_ELFUTILS_PREREQ (0,142)]:
Pass new argument to c_translate_location.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It's important for macros like this to appear as a single statement, so
they won't break the control flow of the caller. The new STAP_SEMAPHORE
macro was breaking this masquerade, but now I've moved it inside of the
do-while block.
* includes/sys/sdt.h (STAP_SEMAPHORE): Define the disabled case empty.
(STAP_PROBE[1-10]_): Move the semaphore inside the do-while block.
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | | |
Gneral work on options in the client and server.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The decrement can happen at the same time that the utrace detach is
called. However, I'm concerned that this code isn't correctly handling
the case where multiple tasks may register the same probe, so for now
I've noted those places. I think task finder may have to help in fixing
this...
* tapset-utrace.cxx (utrace_derived_probe_group::emit_module_init): As
noted in uprobes-land, there's no need to tear down anything.
(utrace_derived_probe_group::emit_module_exit): Unify the detach and
semaphore decrement, and note a concern about multiple tasks.
(utrace_derived_probe_group::emit_module_decls): Note same concern.
* tapsets.cxx (uprobe_derived_probe_group::emit_module_decls): Ditto.
(uprobe_derived_probe_group::emit_module_exit): Ditto.
|
| | |
| | |
| | |
| | | |
* tapsets.cxx (sdt_query::record_semaphore): Use lookup_symbol_address.
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Each probe needs to know the associated semaphore address, rather than
the other way around.
* session.h (sdt_semaphore_addr): Reverse the key-value types.
* tapsets.cxx (record_semaphore): Take an index to only record the
semaphore for newly added results.
(sdt_query::handle_query_module): Adjust accordingly.
(uprobe_derived_probe_group::emit_module_decls): Now it's a simple map
lookup for sdt_sem_address.
* tapset-utrace.cxx (utrace_derived_probe_group::emit_probe_decl): Ditto.
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As reported by dsmith, reusing temporary locals will prevent our
limited optimizer from eliminating code. I'm getting rid of these
particular locals altogether.
* tapset/networking.stp (netdev.change_mac): Don't write mac
intermediates into locals; just pass them directly to sprintf.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* loc2c.c (struct location): Add loc_constant variant,
with constant_block field.
(translate): Handle DW_OP_implicit_value to make loc_constant pieces.
(c_translate_location): Handle loc_constant.
(discontiguify): Likewise.
(location_relative): Likewise.
(declare_noncontig_union): Likewise.
(translate_base_fetch): Likewise.
(c_translate_array): Likewise.
(c_emit_location): Likewise.
(emit_base_store): Refuse loc_constant.
(c_translate_addressof): Likewise.
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | | |
Conflicts:
loc2c.c
|
| | | |
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
* loc2c.c (translate): Fix sense of _ELFUTILS_PREREQ test and clean up stub
for DW_OP_implicit_value case, still not really implemented.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
* loc2c.c (translate): _ELFUTILS_PREREQ(0,143).
Clarify attr == NULL DIE message.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently XFAILS when gcc-vta detected, otherwise UNTESTED.
* testsuite/systemtap.base/vta-test.exp: New test harness.
* testsuite/systemtap.base/vta-test.c: New test program.
* testsuite/systemtap.base/vta-test.stp: New test script.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Preparation for retrieving the Dwarf_Block that holds the value of an
DW_OP_implicit_value. We need the Dwarf_Attribute that is associated with
the location expression operants. Depends on new elfutils 0.143
functionality. Recognizes, but does not yet handle the new operants
DW_OP_{implicit,stack}_value.
* loc2c.h (c_translate_location): Take an Dwarf_Attribute.
* loc2c.c (c_translate_location): Likewise and pass it on.
(location_relative): Likewise.
(location_from_address): Likewise.
(translate): Likewise and capture Dwarf_Block.
* loc2c-test.c (handle_variable): Pass in Dwarf_Attribute.
* dwflpp.cxx (translate_location): Likewise.
(literal_stmt_for_return): Pass in NULL to indicate no attribute.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We allocate a "fake" unlinked shmem file because anonymous
memory might not be granted execute permission when the selinux
security hooks have their way. Only do this for 2.6.28 or higher
since shmem_file_setup() isn't exported before that.
* runtime/uprobes2/uprobes.c (uprobe_setup_ssol_vma): Use shmem_file_setup
to setup the ssol vma area when using 2.6.28+.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
* dwflpp.cxx(translate_location): Separate setting value from
declaration and add missing parameter.
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The function spec for dwarf probes now supports scopes, so you can limit
the probes to specific namespaces or classes. Multiple scopes can be
specified, and they will be matched progressively outward.
probe process("foo").function("std::vector<*>::*") { ... }
probe process("foo").function("::global_function") { ... }
* dwflpp.cxx (dwflpp::get_parent_scope): New, finds the containing
scopes of the specified DIE.
(dwflpp::function_scope_matches): New, checks that the scopes
containing the function all match the given scope patterns.
* tapsets.cxx (dwarf_query::parse_function_spec): Rewrite, now handles
multiple scope separators too.
(query_dwarf_func): Check that the functions scopes match.
|
| | | |
| | | |
| | | |
| | | | |
* dwflpp.cxx (dwflpp::function_name_final_match): Removed.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add /* unprivileged */ to a variety of tapset embedded-c functions,
together with uid-assertion-checking code as needed. This is only
an initial set, and may need to grow or shrink after further testing.
Prototyped-By: Dave Brolley <brolley@redhat.com>
* runtime/runtime.h (is_myproc, assert_is_myproc): New macros.
* runtime/addr-map.c (lookup_bad_addr): Reject if !is_myproc
in unprivileged mode.
* runtime/print.c (_stp_print_kernel_info): Add unprivileged
mode info.
* tapset/DEVGUIDE: Document /* pure */ and /* unprivileged */.
* tapset/*.stp: Add /* unprivileged */ here and there, in
questionable cases along with an assert_is_myproc().
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* itrace.h (__access_process_vm): Moved from here...
* runtime/access_process_vm.h: New. ...to here.
* translate.cxx (translate_pass): Include access_process_vm.h
* session.h (sdt_semaphore_addr): New.
* tapsets.cxx (sdt_query::record_semaphore): New. Record sdt_semaphore_addr.
(uprobe_derived_probe_group::emit_module_decls): Allow for uprobe guard variable to be set and unset.
(uprobe_derived_probe_group::emit_module_decls): Likewise.
(uprobe_derived_probe_group::emit_module_exit): Likewise.
* tapset-utrace.cxx (utrace_derived_probe_group::emit_probe_decl): Likewise.
(utrace_derived_probe_group::emit_module_decls): Likewise.
(utrace_derived_probe_group::emit_module_exit): Likewise.
|
|\| | |
|
| | |
| | |
| | |
| | | |
* loc2c-test.c (handle_variable): Handle DW_TAG_reference_type.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* testsuite/systemtap.base/flightrec1.exp: Add signal file switching testcase.
* testsuite/systemtap.base/flightrec4.exp: New test for signal file switching
with file number limits.
* testsuite/systemtap.base/flightrec5.exp: New test for signal file switching
with file number limits on bulk mode.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* runtime/staprun/relay_old.c (switch_oldoutfile): New function for file
switching.
(process_subbufs): Use switch_oldoutfile.
(reader_thread): Use ppoll() instead of poll() for receiving SIGUSR2
and switch output file when receiving a signal(SIGUSR2).
(switchfile_handler): Send SIGUSR2 signal to reader threads for file
switching.
(init_oldrelayfs): Assign switchfile_handler to SIGUSR2.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* runtime/staprun/relay.c (switch_outfile): New function for file switching.
(reader_thread): Don't assign empty_handler to SIGUSR2, and switch output
file when receiving signal(SIGUSR2) on ppoll.
(switchfile_handler): Send SIGUSR2 signal to reader threads for file
switching.
(init_relayfs): Assign switchfile_handler to SIGUSR2.
* staprun.1.in: Add FILE SWITCHING BY SIGNAL section.
|
| | |
| | |
| | |
| | |
| | | |
This is a toy script I wrote a while back to demonstrate how SystemTap
could be used to enforce filesystem naming rules.
|
| | |
| | |
| | |
| | |
| | | |
Signed-off-by: Robb Romans <robb@linux.vnet.ibm.com>
Signed-off-by: Josh Stone <jistone@redhat.com>
|
| | |
| | |
| | |
| | |
| | | |
Signed-off-by: Robb Romans <robb@linux.vnet.ibm.com>
Signed-off-by: Josh Stone <jistone@redhat.com>
|
| | |
| | |
| | |
| | |
| | | |
Signed-off-by: Robb Romans <robb@linux.vnet.ibm.com>
Signed-off-by: Josh Stone <jistone@redhat.com>
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a basic script to assure that the network devices tapset
is building (-p4) properly.
This script is basically a copy of another netdev example that is
located on testsuite/systemtap.examples/network/netdev.stp
Signed-off-by: Josh Stone <jistone@redhat.com>
|