summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix uninitialized line numbers in the function specJosh Stone2009-09-181-1/+4
| | | | | | | | | The rewrite of parse_function_spec left the line numbers uninitialized when not used, but elsewhere was depending on that. Fix the uninit, and also don't depend on it. * tapsets.cxx (dwarf_query::parse_function_spec): Init line stuff. (query_cu): Branch on the spec_type, not the line contents.
* PR10655 part 1: uprobes: track sdt semaphores properlyFrank Ch. Eigler2009-09-183-37/+52
| | | | | | | | | | | | | | | | | | | commit 6846cfc8 introduced an unintended side-effect where semaphore tracking was identified with stap_uprobe_specs[] elements, which are normally static/const. This kernel patch <http://article.gmane.org/gmane.linux.kernel/854187> catches and panics on this. The cure is to move the variable over to the stap_uprobes[] array. * tapsets.cxx (uprobe emit_module_decls): Add sdt_sem_address to stap_uprobe{} struct, to contain per-process relocated semaphore address. (emit_module_decls,_init): Remove tsk field, restore constness of appropriate locals. Activate uprobe semaphore right around uprobe activation time. Remove semaphore clearing upon process exit, since by then it's gone. (emit_module_exit): Use remembered relocated semaphore address to clean up. Fix "-uprobe" DEBUG_UPROBES message. * runtime.h: #include <linux/sched.h>. * dtrace.in (*_semaphore): Make it an unsigned short - intended 16 bits on all common architectures/multilibs.
* Update entries for unprivileged users and for cross compiling client/server.Dave Brolley2009-09-181-13/+24
|
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDave Brolley2009-09-187-18/+18
|\
| * Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDavid Smith2009-09-182-2/+2
| |\
| | * buildok netdev.stp file shouldn't be using /usr/bin/env, but stap directly.Mark Wielaard2009-09-181-1/+1
| | |
| | * * vta-test.c: Include sdt.h under test, not system installed sys/sdt.h.Mark Wielaard2009-09-181-1/+1
| | |
| * | Fixed relay_old.c by providing ppoll().David Smith2009-09-182-9/+12
| |/ | | | | | | | | | | | | * runtime/staprun/staprun.h: Put ppoll() declaration here (so that relay_old.c can use it). * runtime/staprun/relay.c (ppoll): Made ppoll() non-static so that relay_old.c can use it.
| * Don't mark print_ustack() as pure, it has side effects (printing the stack).Mark Wielaard2009-09-181-1/+1
| | | | | | | | * tapset/ucontext-symbols.stp (print_ustack): Remove /* pure */
| * Uprobes not currently supported on ia64.William Cohen2009-09-181-1/+0
| |
| * Always mark .probes section as writable.Mark Wielaard2009-09-181-5/+3
| | | | | | | | | | | | | | | | | | Allocated section needs to be writable when creating pic shared objects because we store relocatable addresses in them. We used to make this read only for non-pic executables, but the new semaphore support relies on having a writable .probes section to put the enabled variables in. * includes/sys/sdt.h (ALLOCSEC): Define unconditionally as "aw".
* | stap-start-server(->stap-serverd) now accept -r -R -I -B and -a options for ↵Dave Brolley2009-09-186-82/+365
|/ | | | | | | cross compilation. Server correctly advertises itself wrt -r and -a. Fix bug in stap-server: fatal function was potentially recursive.
* Clarify and reformat some NEWS entries.Mark Wielaard2009-09-181-32/+34
|
* PR10417 Enable vta-test.exp testcase and add to NEWS.Mark Wielaard2009-09-183-3/+5
| | | | | | * 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.
* PR10417 Fix declare_noncontig_union struct emitting.Mark Wielaard2009-09-181-2/+2
| | | | * loc2c.c (declare_noncontig_union): Only open struct when loc_noncontiguous.
* Fix build error with elfutils < 0.142.Roland McGrath2009-09-171-2/+4
| | | | | * loc2c.c [!_ELFUTILS_PREREQ (0,142)] (DW_OP_stack_value, DW_OP_implicit_value): Define as macros.
* Fix build error with elfutils < 0.142.Roland McGrath2009-09-171-4/+4
| | | | | * dwflpp.cxx (translate_location) [!_ELFUTILS_PREREQ (0,142)]: Pass new argument to c_translate_location.
* Whitespace cleanups in sdt.hJosh Stone2009-09-171-60/+60
|
* Ensure that STAP_PROBE behaves like a single statementJosh Stone2009-09-171-43/+22
| | | | | | | | | | 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.
* Merge branch 'master' of sourceware.org:/git/systemtapJosh Stone2009-09-173-109/+174
|\
| * Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDave Brolley2009-09-1772-571/+1961
| |\
| * | Check for unprivileged options conflicts on the server side.Dave Brolley2009-09-173-109/+174
| | | | | | | | | | | | Gneral work on options in the client and server.
* | | Simplify the sdt semaphore decrement in utraceJosh Stone2009-09-172-39/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Simplify sdt's record_semaphoreJosh Stone2009-09-171-16/+5
| | | | | | | | | | | | * tapsets.cxx (sdt_query::record_semaphore): Use lookup_symbol_address.
* | | Map std semaphores from probe->addrJosh Stone2009-09-173-37/+23
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'master' of ssh://sources.redhat.com/git/systemtapWilliam Cohen2009-09-172-45/+133
|\ \
| * | Remove temporaries in netdev.change_macJosh Stone2009-09-171-14/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | Support DW_OP_implicit_value.Roland McGrath2009-09-171-31/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | | Add task_backtrace systemtap function.William Cohen2009-09-171-0/+13
|/ /
* | Merge branch 'master' of ssh://sources.redhat.com/git/systemtapRoland McGrath2009-09-170-0/+0
|\ \ | | | | | | | | | | | | Conflicts: loc2c.c
| * | Don't invert the _ELFUTILS_PREREQ(0,143) test...Mark Wielaard2009-09-171-1/+1
| | |
* | | Merge DW_OP_stack_value support.Roland McGrath2009-09-171-19/+65
|\ \ \ | |/ / |/| | | | | | | | * loc2c.c (translate): Fix sense of _ELFUTILS_PREREQ test and clean up stub for DW_OP_implicit_value case, still not really implemented.
| * | Unfinished nits in loc_value code.Roland McGrath2009-09-171-2/+11
| | |
| * | * loc2c.c: Handle DW_OP_stack_value. Untested and probably unfinished.Roland McGrath2009-09-161-3/+45
| | |
* | | dwarf_getlocation_implicit_value() was/will be introduced in elfutils 0.143.Mark Wielaard2009-09-171-2/+2
| | | | | | | | | | | | | | | * loc2c.c (translate): _ELFUTILS_PREREQ(0,143). Clarify attr == NULL DIE message.
* | | Add a testcase for PR10417 support for DW_OP_{stack|implicit}_value.Mark Wielaard2009-09-173-0/+76
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | PR10417 Pass around attributes for supporting DW_OP_{implicit,stack}_value.Mark Wielaard2009-09-174-17/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Regenerate examples index.Mark Wielaard2009-09-174-6/+6
| | |
* | | Mark badname example as needing guru mode in meta file so it doesn't FAIL.Mark Wielaard2009-09-171-3/+3
| | |
* | | PR10595 Work around uprobe2 causing selinux failures for kernel 2.6.28+.Mark Wielaard2009-09-171-3/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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+.
* | | Don't print pid in flightrec5.exp test.Mark Wielaard2009-09-171-1/+0
| | |
* | | Fix compilation error of dwflpp.cxx on gcc 4.1Wenji Huang2009-09-171-2/+3
| | | | | | | | | | | | | | | * dwflpp.cxx(translate_location): Separate setting value from declaration and add missing parameter.
* | | Merge branch 'function_scopes'Josh Stone2009-09-163-74/+162
|\ \ \
| * | | PR10461: Match C++ scopes for namespaces and classesJosh Stone2009-09-163-71/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Remove the unused function_name_final_matchJosh Stone2009-09-162-8/+0
| | | | | | | | | | | | | | | | * dwflpp.cxx (dwflpp::function_name_final_match): Removed.
* | | | PR10650: markup some unprivileged-safe tapset functionsFrank Ch. Eigler2009-09-1611-63/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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().
* | | | * sdt.h (STAP_SEMAPHORE): New. Add guard to utrace probe points.Stan Cox2009-09-168-74/+232
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | | Merge branch 'master' of sourceware.org:/git/systemtapJosh Stone2009-09-168-37/+297
|\| |
| * | Handle DW_TAG_reference_type in loc2c-test.Roland McGrath2009-09-161-0/+1
| | | | | | | | | | | | * loc2c-test.c (handle_variable): Handle DW_TAG_reference_type.
| * | Add signal based file switching testcaseMasami Hiramatsu2009-09-163-1/+131
| | | | | | | | | | | | | | | | | | | | | | | | * 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.