| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
* systemtap.base/static_uprobes.exp: Compile with -x c++. Test .probes absence.
|
|
|
|
|
|
|
|
|
| |
When given directly by the user through -d or in case of the kernel
name and path might differ. path should be used for matching.
* runtime/sym.h (_stp_module): Add path field.
* runtime/task_finder.c (__stp_tf_vm_cb): Use module path to compare vm_path.
* translate.cxx (dump_unwindsyms): Output canonical path.
|
|
|
|
| |
* tapset/scsi.stp: Remove 'g' at end of file.
|
|\ |
|
| |
| |
| |
| | |
Two functions pid2task and pid2execname.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In some configurations, GCC was warning about a possible use of _v in
the deref macros. I could not reproduce the error, but the only case
where _v is not written is if lookup_bad_addr rejects the address, in
which case we will hit DEREF_FAULT and _v won't be used.
Now we're priming _v=0 anyway, so GCC has no right to complain...
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit 96b030fe reorganized the tracepoint registration calls by
creating generic wrappers that return int. However, the older
tracepoint implementation (as found in RHEL5.3) returned void for unreg,
so this was failing pass-4.
Since we can't handle unregistration failures anyway, this change just
makes the generic unregister function return void instead. As noted in
the newly-added comment, it should be safe for us to ignore unreg
failures.
|
| | |
|
| |
| |
| |
| | |
it tom
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
|
|
|
|
| |
* translate.cxx (dump_unwindsyms): Check elfutils version and whether
build_id_vaddr < base, and if so add main_bias to address.
|
|
|
|
| |
to Tapset_Reference_Guide
|
| |
|
| |
|
| |
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
|
|
|
| |
tapsetdescription for man page generator (in development)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (utrace_derived_probe_group::emit_module_decls):
Always emit vm callback probe for __stp_tf_vm_cb.
* runtime/task_finder.c (__stp_tf_vm_cb): Always expose, move _stp_dbug
statements under ifdef DEBUG_TASK_FINDER_VMA. Find and record
corresponding module when vm_path not NULL.
* runtime/task_finder_vma.c (struct __stp_tf_vma_entry): Add _stp_module.
(stap_add_vma_map_info): Add _stp_module argument and assign.
(__stp_tf_get_vma_entry_addr): New static function to get
the __stp_tf_vma_entry given an address.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With most of the implementations, kread/kwrite call deref/store_deref,
and so it makes sense to have lookup_bad_addr in the latter as an
underlying address check.
However, in the STAPCONF_PROBE_KERNEL case that uses probe_kernel_read
and probe_kernel_write, the roles are reversed, so lookup_bad_addr needs
to be in kread/kwrite.
Also note that __deref_bad and __store_deref_bad should only be used in
cases that can be determined at compile time. These turn into invalid
symbols which prevent the module from loading. (They might be better
replaced with compile-time assertions.)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The kernel lockdep checking found a possible deadlock if a forced rmmod
tried to destroy _stp_work_queue at the same time that the work queue
was unregistering tracepoints. An unlikely scenario, but still
possible.
Now the work queue will just issue a STP_REQUEST_EXIT down to usermode,
and usermode will echo back an STP_EXIT that triggers the actual probe
cleanup. This way the unregistrations are happening in exactly the same
context as the registrations were.
|
|/ |
|
|
|
|
|
| |
* testsuite/systemtap.base/sdt.exp: Add additional_flags -ansi together
with -pedantic.
|
|
|
|
| |
* testsuite/systemtap.base/sdt.exp: Add -O2, -O3.
|
|
|
|
|
| |
* testsuite/lib/stap_run2.exp: Add stap_run3, called from stap_run2.
* testsuite/systemtap.base/sdt.exp: Use stap_run3, for distinct test names.
|
|
|
|
|
|
|
| |
Instead of registering tracepoints with the deeply-nested if-tree, which
was cluttering the module_init/exit, this now emits normalized reg/unreg
functions for each tracepoint probes. Now the module_init/exit can be a
simple loop like all of the other probe types.
|
|
|
|
|
|
|
|
|
| |
This checks that kernel.trace("*") will compile, with all context
variables accessed as well. For kernels without tracepoints, it will
just hit a "begin" and quit.
This doesn't ensure that kernel.trace("*") will always find something
when it should, though...
|
|
|
|
|
|
| |
The new semok testcase exposed that the module splitting wasn't properly
setting substr boundaries. Instead of passing the end position, it's
supposed to pass the number of characters (end - begin). Oops.
|
| |
|