| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* runtime/procfs.c: Allow STP_MAX_PROCFS_FILES define to be overridden.
(_stp_create_procfs): Calls proc_create() instead of create_proc_entry()
to avoid a race condition.
* runtime/procfs-probes.c: New file containing procfs probe support
routines.
* tapset-procfs.cxx (procfs_derived_probe::join_group): Update struct
_stp_procfs_data definition.
(procfs_derived_probe::emit_module_decls): Include procfs-probes.c,
which is where the definition of struct stap_procfs_probe exists.
Update generated routines to read/write procfs data.
(procfs_derived_probe_group::emit_module_init): Pass file_operations
argument to _stp_create_procfs(). Initialize mutex.
(procfs_var_expanding_visitor::visit_target_symbol): Update generated
code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ideas from Frank Ch. Eigler:
- extending the hash.add() function to pass names along with the
hash-mix values, so that class hash can internally track the
hash-report string
- storing the reports themselves in the cache, beside the .ko / .c
files, and changing the cache-size-limit logic to delete
these .txt files upon garbage collection
* hash.h : New member parm_stream.
* hash.cxx (get_parms): New function to convert parms stream to string.
(hash::add): Aggregrate parms stream.
(create_hash_log): New function to log hash operation.
(find_*_hash): Log hash at the end of function.
* cache.cxx (clean_cache): Remove log when cache reaches limitation.
|
|
|
|
|
|
|
| |
* testsuite/systemtap.base/procfs_write.exp: Small changes for RHEL5
support.
* testsuite/lib/stap_run.exp (stap_run): Increase maximum number of
characters to match against.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Switch to list<string> from set<string> for collecting
available $var lists. Use O(N**2) list-uniqueifier
that preserves initial ordering.
|
| |
| |
| |
| | |
* dwflpp.cxx (get_cfa_ops): Guard new cfi related code and variables.
|
| | |
|
| | |
|
|/ |
|
|\ |
|
| |
| |
| |
| | |
* testsuite/buildok/hwbkpt.stp: Just use stap directly after #!.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
dwflpp::translate_location() works on the dw address space, but
get_cfa_ops() starts out with dwfl calls (only dwarf_cfi_addrframe()
needs to be adjusted for bias).
* dwflpp.cxx (translate_location): Pass pc plus module bias through to
get_cfa_ops.
(get_cfa_ops): Adjust for bias when calling dwarf_cfi_addrframe(),
add frame start/end address when found if verbose logging.
* testsuite/systemtap.exelib/lib.stp: Add $foo and $bar variables to
process.function probes.
* testsuite/systemtap.exelib/libmarkunamestack.stp: Likewise.
* testsuite/systemtap.exelib/lib.tcl: Expect correct values for
process.function probe variables.
* testsuite/systemtap.exelib/libmarkunamestack.tcl: Likewise.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
* testsuite/buildok/hwbkpt.stp: Switch by CONFIG_* and be
executable.
|
| |
| |
| |
| | |
* testsuite/systemtap.base/overflow-get_argv.stp: Initialize var.
|
| |
| |
| |
| | |
Part 2]
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
That function was calling strlcpy as if the return value was the number
of bytes copied, but strlcpy actually returns the length of the input
string. We now use min() to handle the case when it's bigger than the
buffer length, and drop out of the loop when that happens.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
* staptree.cxx (varuse_collecting_visitor::visit_arrayindex):
Regard operations as pure writes.
* testsuite/systemtap.base/global_end.exp: Add test case.
* testsuite/systemtap.base/global_end.stp: Ditto.
|
| |
| |
| |
| |
| |
| |
| | |
* stap-serverd: Block startup if whoami=root, unless magic
environment variable is set.
* testsuite/lib/systemtap.exp: Set magic environment variable to
override protection.
|
| |
| |
| |
| | |
* loc2c-test.c (main): Correctly bias PC passed to dwarf_cfi_addrframe.
|
| |
| |
| |
| |
| |
| | |
* tapset-procfs.cxx (procfs_var_expanding_visitor::visit_target_symbol):
Correctly null terminate strings in procfs write probes.
* testsuite/systemtap.base/procfs_write.exp: New test.
|
| |
| |
| |
| |
| |
| | |
* runtime/map.h: Set MAP_STRING_LENGTH to MAXSTRINGLEN so that large
strings can be stored in arrays.
* testsuite/systemtap.base/array_string.exp: New testcase.
|
| | |
|
|/
|
|
|
| |
stap-client: Correct handling of embedded newlines in arguments.
server_args.exp: Add additional cases discovered by fche and by fuzzing.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
txt output requires additional build dependencies (w3m or similar
browser).
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* runtime/sym.h (_stp_module): add unwind_hdr_addr member.
* runtime/unwind.c (read_ptr_sect): Modification of read_pointer that
also handles offsets from text or "data" sections.
(read_pointer): Use it.
(_stp_search_unwind_hdr): Use read_ptr_sect to calculate values that
are relative to the .eh_frame_hdr section.
(unwind_frame): Search the frame header if this is an eh frame.
* translate.cxx (get_unwind_data): Get the eh_frame_hdr too.
(dump_unwindsyms): Write out eh_frame_hdr stuff.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* dtrace.1: New file.
* Makefile.am (man_MANS): Add dtrace.1
* Makefile.in: Regenerate.
* configure.ac (AC_CONFIG_FILES): Add dtrace.1
* configure: Regenerate.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Our existing protection only made sure that the first token in a
substitution wasn't a nested substitution. That's not sufficient when
there could be multiple tokens involved. This patch makes sure that no
nested tokens are ever allowed to be argument substitutions.
This also adds a cursor_suspended_line/column and resets the main
cursor_line/column to the beginning of the substitution, so errors will
point a little closer to the right place.
|
| | |
|
| |
| |
| |
| | |
* loc2c.c (translate): DW_OP_shr is unsigned, DW_OP_shra is signed.
|
| |
| |
| |
| | |
* loc2c.c (translate): Use signed division for DW_OP_div.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Our hack for producing nicer listing modes was to write the mark name in
component index 1. That's fine for process.mark, but writes the wrong
position for process.library.mark. It now munges the last probe
component of any number of indexes.
(A better fix is due in PR10831, preserving the derivation chain.)
|
| |
| |
| |
| | |
Remove $(pkglibexec_SCRIPTS) from CLEANFILES.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Our literal_addr_to_sym_addr() function was just wrong. To compensate for
raw addresses read from elf (either given by the user or through a mark
transformation) we need to know what the elf_bias is (as returned by
dwfl_module_getelf) before feeding them to any libdwfl functions.
* tapsets.cxx (query_module_dwarf): Always add elf_bias to raw function or
statement addresses before calling query_addr().
(query_addr): Don't call literal_addr_to_sym_addr().
* dwflpp.h (literal_addr_to_sym_addr): Removed.
* dwflpp.cxx (literal_addr_to_sym_addr): Likewise.
|
| | |
|
| |
| |
| |
| | |
* uprobes-common.c (stap_uprobe_change_plus): Relax VM_EXEC check.
|
| |
| |
| |
| |
| |
| | |
reimplementation.
Also add the test cases to the test suite.
|
|\| |
|
| |
| |
| |
| | |
* configure.ac (STAP_PREFIX): Map NONE -> /usr/local.
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
stap-client
|