summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDavid Smith2009-08-191-7/+8
|\
| * PR10538: Improve location lookup for unionsJosh Stone2009-08-191-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | We had a bug that the starting call to find_struct_member used the same memory for the parentdie and the resulting member. If parentdie is a union, then the first member probably won't have a location, and we actually assert that it must be a union. Since we wrote the result in the same memory, we lost the real info about the parent, and so the assertion failed. * dwflpp.cxx (dwflpp::translate_components): Use distinct memory for the parent and resulting member in the call to find_struct_member. (dwflpp::find_struct_member): Remove the needless parentdie copy.
* | Updated with latest code.David Smith2009-08-191-70/+145
|/ | | | | | | | | | | | | | | | | | | | | | | * runtime/transport/ring_buffer.c (_stp_ring_buffer_disable_cpu): New function. (_stp_ring_buffer_enable_cpu): Ditto. (_stp_ring_buffer_cpu_disabled): Ditto. (_stp_ring_buffer_empty_cpu): Only checks online cpus (instead of all possible cpus). (_stp_find_next_event): Ditto. (_stp_ring_buffer_iterator_increment): Calls _stp_ring_buffer_disable_cpu()/_stp_ring_buffer_enable_cpu() around ring_buffer_* calls. (_stp_ring_buffer_consume): Ditto. (_stp_peek_next_event): Ditto. (_stp_buffer_iter_finish): New function. (_stp_buffer_iter_start): Ditto. (_stp_data_read_trace): Uses _stp_buffer_iter_start()/_stp_buffer_iter_finish(). (_stp_data_write_reserve): Checks to see if the cpu is disabled (with _stp_ring_buffer_cpu_disabled() before reserving memory. Uses _stp_buffer_iter_start()/_stp_buffer_iter_finish(). (_stp_transport_data_fs_init): Initializes buffer iterators.
* * testsuite/systemtap.base/postgres.exp: New test for checking sdtStan Cox2009-08-191-0/+136
| | | | | marker support as used by postgres. Currently assumes, and verifies, that postgres is installed in /usr/local
* PR10228: fix non-utrace building regressionFrank Ch. Eigler2009-08-192-2/+7
| | | | | | | * translate.cxx (dump_unwindsyms): Decide based on modname[] not mainfile[] to emit a vmcb. * runtime/task_finder.c (non-UTRACE): Include dummy stap_{start,stop}_* functions.
* Improved testcase error handling.David Smith2009-08-192-14/+14
| | | | | * testsuite/systemtap.base/arith.exp: Improved error handling. * testsuite/systemtap.base/cmd_parse.exp: Ditto.
* Improved systemtap.printf/sharedbuf.exp testcase.David Smith2009-08-191-41/+87
| | | | | * testsuite/systemtap.printf/sharedbuf.exp: Handles failure better and possible modpost warnings.
* Fix typo in sdt_types.stp (missing newline).Mark Wielaard2009-08-191-2/+2
| | | | * testsuite/systemtap.base/sdt_types.stp (int_var): Add \n to printf.
* PR10495: allow multiple probe aliases with same nameFrank Ch. Eigler2009-08-185-12/+32
| | | | | | | | * elaborate.cxx (match_node::bind): Change ->end to ->ends[] vector. (find_and_build,build_no_more): Iterate over ends[]. * elaborate.h: Corresponding changes. * testsuite/semok/thirtyfour.stp: New test. * NEWS, doc/langref.tex: Note this.
* AUTHORS updateJosh Stone2009-08-182-0/+2
|
* PR10512 STAP_PROBES don't work in c++ constructors/destructors testcase.Mark Wielaard2009-08-183-0/+126
| | | | | | * testsuite/systemtap.base/cxxclass.exp: New file. * testsuite/systemtap.base/cxxclass.stp: Likewise. * testsuite/systemtap.base/cxxclass.cxx: Likewise.
* PR10512 Referencing computed goto labels in c++ constructors does work.Mark Wielaard2009-08-181-23/+0
| | | | | | | | PR10533 inlined vars are not always found was fixed which means we no longer need to prevent inlining of the STAP_PROBE macros. * includes/sys/sdt.h (STAP_UNINLINE_LABEL): Removed. (STAP_PROBE[1-9]_): Remove label: and STAP_UNINLINE_LABEL.
* Add testcase for PR10533 (inlined vars) and 10537 (inlined labels - disabled)Mark Wielaard2009-08-183-0/+73
| | | | | | | | | | Partial testcase for PR10533 (inlined vars) and 10537 (inlined labels) currently we cannot use the full testcase since stap doesn't support probing multiple instances of inlined labels. * testsuite/systemtap.base/inlinedvars.exp: New file. * testsuite/systemtap.base/inlinedvars.stp: Likewise. * testsuite/systemtap.base/inlinedvars.c: Likewise.
* PR10533 inlined vars are not always found (dwflpp).Mark Wielaard2009-08-181-14/+26
| | | | | | | | | | | | | | dwflpp::find_variable_and_frame_base switched too early to "pyshical view" of die tree. We need to lookup the var in the "syntactical view" of the die tree first. Then when we see a DW_TAG_inlined_subroutine while walking the syntactical die tree as returned by dwarf_getscopes for a given variable to retrieve the frame base, then we need to switch to walking the physical die tree where the subroutine is inlined. * dwflpp.cxx (find_variable_and_frame_base): Don't immediately go to die_scopes, but lookup var first based on pc. Then switch "die branches" when searching for frame base and a DW_TAG_inlined_subroutine is encountered.
* PR10533 inlined vars are not always found (lo2c-test off-by-one).Mark Wielaard2009-08-181-1/+1
| | | | | * loc2c-test.c (handle_variable): Set inner to zero after calling dwarf_getscopes_die(), for loop will increase inner.
* PR10518: context shrinkage with function recursion analysis feeding MAXNESTINGFrank Ch. Eigler2009-08-183-7/+87
| | | | | | | | * translate.cxx (emit_common_header, translate_pass): Use new recursion_info visitor to calculate appropriate MAXNESTING value for scripts with or without recursion. * tapsets.cxx (common_probe_entryfn_prologue): Initialize c->nesting = -1. * stap.1.in: Clarify MAXNESTING value.
* Adapt tracepoints to the new probe_locals unionJosh Stone2009-08-182-2/+2
| | | | | | | * tapsets.cxx (tracepoint_derived_probe_group::emit_module_decls): Use probe_locals to set the tracepoint arguments for the probe. * testsuite/systemtap.base/tracepoints.exp: Include the arguments in the pass-4 tracepoint test.
* PR10516: reduce context sizeFrank Ch. Eigler2009-08-181-3/+9
| | | | | | * translate.cxx (emit_common_header): Emit probe locals into a separate union, not into the locals[] array. (emit_probe): Adapt.
* elfutils build tweak: run nested configure with bash, add -fgnu89-inlineFrank Ch. Eigler2009-08-1815-3443/+5734
| | | | | * configure.ac: Tweak --with-elfutils nested configure invocation. * rest of auto* files: regenerated with fedora-11 tools
* * dtrace.in: Honor the dirname for the output file.Stan Cox2009-08-182-2/+119
| | | | * testsuite/systemtap.base/dtrace.exp: New test.
* PR10533 loc2c doesn't resolve frame base correctly for inlined vars.Mark Wielaard2009-08-181-12/+28
| | | | | | | | | | When we see a DW_TAG_inlined_subroutine while walking the syntactical die tree as returned by dwarf_getscopes for a given variable to retrieve the frame base, then we need to switch to walking the physical die tree where the subroutine is inlined. * loc2c-test.c (handle_variable): Switch "die branches" when searching for frame base and a DW_TAG_inlined_subroutine is encountered.
* Print DIE offsets in loc2c-test scope dumps.Roland McGrath2009-08-181-1/+2
|
* Unlocks global variables, then calls _stp_print_flush().David Smith2009-08-171-4/+4
| | | | | * translate.cxx (c_unparser::emit_probe): Unlocks global variables, then calls _stp_print_flush() (instead of the other way around).
* Cache failed tracepoint headers tooJosh Stone2009-08-141-2/+8
| | | | | | | | | | Rather than re-attempting a tracepoint header that fails to compile, we now save an empty file into the cache to indicate "nothing to see here." See also PR10424. * tapsets.cxx (tracepoint_builder::get_tracequery_module): Use /dev/null as the empty result file if make_tracequery fails. (tracepoint_builder::init_dw): Ignore empty tracequery modules.
* PR10228: use task_finder_vma for -d /user/object files.Frank Ch. Eigler2009-08-149-115/+46
| | | | | | | | | | | | * main.cxx (main): For "-d /path" arguments, enable task finder. * runtime/sym.h (_stp_module): Add *vmcb member. * task_finder{.cxx,.h} (emit_vma_callback_probe_decl): Zap. * tapset-itrace.cxx, tapset-utrace.cxx: Use unwindsyms_modules instead. * tapsets.cxx (uprobe::emit_module_decls): Ditto. * translate.cxx (emit_module_init): Emit task finder registrations for vmcb's associated with _stp_modules. (dump_unwindsyms): Associate vmcbs with user-space unwindsyms entries.
* usability: don't suppress pass-4 compiler errorsFrank Ch. Eigler2009-08-141-1/+1
| | | | | | ... since a pass-4 compilation error is just as bad as pass-2 error. * buildrun.cxx (run_make_cmd): Remove "2>&1".
* Add missing quote for uname.tclWenji Huang2009-08-141-1/+1
| | | | * testsuite/systemtap.exelib/uname.tcl: Add '"'.
* PR10507: tweak heuristics for stap_uprobes[] allocationFrank Ch. Eigler2009-08-122-8/+15
| | | | | | * tapsets.cxx (uprobes::emit_module_decls): Compute MAXUPROBES with x-treme kl3v3rn3ss. * stap.1.in: Clarify MAXUPROBES.
* PR10461: Probe identical functions only onceJosh Stone2009-08-112-10/+14
| | | | | | | | | | | | | | | In C++ especially, a function definition in a header may be compiled into multiple CUs, but the linker will merge those into a single output function. We don't want to place multiple probes on the same function. The dupe-detection from the alias code (commit 1c6b77e5) already tracks identical functions within a CU, so I've just lifted this to instead track function entrypcs at the module level. * dwflpp.cxx (dwflpp::iterate_over_functions): Remove dupe checks. * tapsets.cxx (dwarf_query): Add alias_dupes set to the query. (dwarf_query::handle_query_module): Reset the dupes for each module. (query_dwarf_func): Check that we only probe each entrypc once.
* Don't call dwarf_lowpc after dwarf_entrypc failsJosh Stone2009-08-111-7/+0
| | | | | | | | The implementation of dwarf_entrypc already checks for _lowpc, so it's redundant for us to attempt a _lowpc call too. * dwflpp.cxx (dwflpp::function_entrypc): Remove XXX comment. (dwflpp::die_entrypc): Don't bother with _lowpc if _entrypc fails
* Improved context.exp error handling.David Smith2009-08-113-10/+8
| | | | | | | | | | * testsuite/systemtap.context/context.exp: Makes sure errors are output to the log file. Also, a Makefile is copied with 'cp -p' to avoid make erroring out if the Makefile's date is in the future (as can be the case if running the test over nfs). * testsuite/systemtap.context/args.tcl: Makes sure 'close' errors are ignored. * testsuite/systemtap.context/backtrace.tcl: Ditto.
* Add 'unused' attribute to module_data and module_size arguments of ↵Dave Brolley2009-08-111-2/+4
| | | | check_permissions.
* exelib testcase now ensures uprobes.ko is up to date.David Smith2009-08-114-4/+4
| | | | | | | | | * testsuite/systemtap.exelib/cleanup.tcl: Makes sure uprobes.ko is up to date. * testsuite/systemtap.exelib/lib.tcl: Ditto. * testsuite/systemtap.exelib/mark.tcl: Ditto. * testsuite/systemtap.exelib/uname.tcl: Ditto. * testsuite/systemtap.exelib/ustack.tcl: Ditto.
* RH516691. SSL typo in manpage.Mark Wielaard2009-08-111-1/+1
| | | | * stap-server.8.in: Fix SLL typo to read SSL.
* Avoid assertion error for no matched function in statement probeWenji Huang2009-08-102-0/+14
| | | | | * dwflpp.cxx (iterate_over_functions): Return for NULL pointer. * testsuite/systemtap.base/statement.exp: Add test case.
* Merge branch 'master' of ssh://sourceware.org/git/systemtapJosh Stone2009-08-104-4/+14
|\
| * Merge branch 'master' of ssh://mark@sourceware.org/git/systemtapMark Wielaard2009-08-101-2/+7
| |\
| | * PR10506 experiment: use /sbin/insmod for uprobes.ko loadingFrank Ch. Eigler2009-08-101-2/+7
| | | | | | | | | | | | * runtime/staprun/staprun.c (enable_uprobes): insmod, not insert_module().
| * | Only add extra error on no probes found if no previous errors already shown.Mark Wielaard2009-08-101-1/+1
| |/ | | | | | | | | * elaborate.cxx (semantic_pass): Don't add "no probes found" if session already had other errors.
| * It is not an error or warning if the local database of authorized signingDave Brolley2009-08-101-0/+5
| | | | | | | | certificates does not exist. It just means that the signed module is untrusted.
| * Use nop instructions without parameters on armEugeniy Meshcheryakov2009-08-081-1/+1
| | | | | | | | | | Fixes FTBFS, see https://buildd.debian.org/fetch.cgi?pkg=systemtap;ver=0.9.9-1;arch=armel;stamp=1249664825
* | PR10499: Integrate attributes in dwarf_decl_file/lineJosh Stone2009-08-103-6/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | Elfutils prior to 0.143 didn't use attr_integrate when looking up the decl_file or decl_line, so the attributes would sometimes be missed. For those old versions, we define custom implementations to do the integration. * dwarf_wrappers.cxx (dwarf_decl_file_integrate): New. (dwarf_decl_line_integrate): New. * dwarf_wrappers.h: Add macros to redirect calls to the above functions. * dwflpp.cxx (dwflpp::iterate_over_labels): Replace a manual attribute lookup that is the same as dwarf_decl_line.
* | Simplify _ELFUTILS_PREREQ checkingJosh Stone2009-08-105-30/+26
| | | | | | | | | | | | | | We were jumping through a few hoops to deal with elfutils < 0.138 that did not have the _ELFUTILS_PREREQ macro. I've added an always-false dummy macro to take its place when it doesn't exit. All of the other "#ifdef _ELFUTILS_PREREQ" ugliness can now go away.
* | Zap dwarf_diename_integrateJosh Stone2009-08-075-41/+20
|/ | | | | | The dwarf_diename in elfutils learned a long time ago to use dwarf_attr_integrate when looking up the name. Our minimum elfutils 0.126 has this, so we don't need to kludge it ourselves.
* Make files executableEugeniy Meshcheryakov2009-08-073-0/+0
|
* Do not use plain [] in help string in configure.acEugeniy Meshcheryakov2009-08-0711-5627/+3388
| | | | This confuses Debian's automake.
* PR10486 Raise default MAXSTRINGLEN.Mark Wielaard2009-08-074-9/+17
| | | | | | | | * translate.cxx (translate_pass): Raise MAXSTRINGLEN to 256 for 32bit arches and to 512 for 64bit arches. * testsuite/systemtap.context/backtrace.tcl: Don't set MAXSTRINGLEN. * testsuite/systemtap.exelib/ustack.tcl: Likewise. * testsuite/systemtap.string/str_replace.exp: Explicitly set MAXSTRINGLEN.
* Fix a couple of sdt_query reorg problems.Stan Cox2009-08-062-6/+10
| | | | | | | * tapsets.cxx (sdt_query::handle_query_module): For uprobe probes: 1) find all same named probes to handle multiple probes per module 2) use new_base for uprobe probes to handle $$name * sdt_misc.exp: Test $$name
* Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-08-061-21/+34
|\
| * Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDavid Smith2009-08-061-0/+1
| |\