summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
Commit message (Collapse)AuthorAgeFilesLines
...
* | Fix the blacklist regexps for atomic functionsJosh Stone2008-04-171-8/+2
| |
* | Added process PATH checking and conditional utrace handler function calls.David Smith2008-04-171-43/+97
| | | | | | | | | | | | | | | | | | | | 2008-04-17 David Smith <dsmith@redhat.com> * tapsets.cxx (utrace_builder::build): Make sure that the PATH of 'process("PATH")' probes is an absolute path. (utrace_derived_probe_group::emit_module_decls): Made calls to utrace probe handler functions conditional on which types of utrace probes are going to be output.
* | RHEL4 gcc compatibility: dummy ctor in unused task_finder_derived_probeFrank Ch. Eigler2008-04-161-0/+2
| |
* | PR6417: extend kprobe blacklist some moreSrinivasa DS2008-04-161-0/+14
| |
* | 2008-04-15 David Smith <dsmith@redhat.com>David Smith2008-04-161-0/+582
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * session.h (struct systemtap_session): Added utrace_derived_probe group and task_finder_derived_probe_group members. * elaborate.cxx (systemtap_session::systemtap_session): Added initialization of utrace_derived_probes and task_finder_derived_probes. * tapsets.cxx (struct task_finder_derived_probe_group): New derived_probe_group to handle task_finder framework. (struct utrace_derived_probe_group): New derived_probe_group to handle utrace probes. 2008-04-15 David Smith <dsmith@redhat.com> PR 5961 (partial) * task_finder.c (stap_start_task_finder): When an interesting thread is found that is already running, make sure to set up thread death notification.
* | 2008-04-14 David Smith <dsmith@redhat.com>David Smith2008-04-141-43/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * elaborate.h (struct derived_probe_group): Removed emit_module_header virtual function. * translate.cxx (c_unparser::emit_common_header): Removed calls to emit_module_header function. * tapsets.cxx (be_derived_probe>): Removed emit_module_header function. (struct timer_derived_probe_group): Ditto. (struct profile_derived_probe_group): Ditto. (struct procfs_derived_probe_group): Ditto. (struct hrtimer_derived_probe_group): Ditto. (struct perfmon_derived_probe_group): Ditto. (dwarf_derived_probe_group::emit_module_decls): Moved kernel check back from deleted emit_module_header function. (uprobe_derived_probe_group::emit_module_decls): Ditto. (mark_derived_probe_group::join_group): Moved marker kernel check (to a new embedded code section) from deleted emit_module_header function.
* | 2008-04-11 David Smith <dsmith@redhat.com>David Smith2008-04-111-10/+43
|/ | | | | | | | | | | | | | | | | | | | | | | | | | * elaborate.h (struct derived_probe_group): Added emit_module_header virtual function. * translate.cxx (c_unparser::emit_common_header): Calls each probe group's emit_module_header function. (translate_pass): Moved inclusion of linux/marker.h to mark_derived_probe_group::emit_module_header(). * tapsets.cxx (struct be_derived_probe_group): Added empty emit_module_header function. (struct timer_derived_probe_group): Ditto. (struct profile_derived_probe_group): Ditto. (struct procfs_derived_probe_group): Ditto. (struct hrtimer_derived_probe_group): Ditto. (struct perfmon_derived_probe_group): Ditto. (dwarf_derived_probe_group::emit_module_header): Moved kprobes kernel check from emit_module_decls() to here. (uprobe_derived_probe_group::emit_module_header): Moved uprobe kernel check from emit_module_decls() to here. (uprobe_derived_probe_group::emit_module_decls): Moved uprobe kernel check to emit_module_header(). (mark_derived_probe_group::emit_module_header): Moved marker kernel check from emit_module_decls and translate_pass() to here. (uprobe_derived_probe_group::emit_module_decls): Moved marker kernel check to emit_module_header().
* 2008-04-04 Masami Hiramatsu <mhiramat@redhat.com>Masami Hiramatsu2008-04-041-0/+2
| | | | | | | | | | | PR 6028 * translate.cxx (c_unparser::emit_common_header): Add unwaddr for caching unwound address. * tapsets.cxx (common_probe_entryfn_prologue): Clear unwaddr. * loc2c-runtime.h (fetch_register): Call ia64_fetch_register with the address of c->unwaddr. * regs-ia64.c (ia64_fetch_register): Don't unwind stack if it has already unwound stack in same probe.
* 2008-03-27 Frank Ch. Eigler <fche@elastic.org>fche2008-03-271-0/+1
| | | | * tapsets.cxx (common_probe_entryfn_prologue): Clear last_stmt.
* 2008-03-26 Frank Ch. Eigler <fche@elastic.org>fche2008-03-261-0/+9
| | | | | * translate.cxx (emit_function): Set context last_stmt, in case an error occurs during the function.
* 2008-03-20 Frank Ch. Eigler <fche@elastic.org>fche2008-03-201-0/+4
| | | | | | PR 5975. * tapsets.cxx (*): Added a few (void) expressions for asserts that may be compiled out.
* 2008-03-14 Masami Hiramatsu <mhiramat@redhat.com>hiramatu2008-03-151-0/+31
| | | | | | | | | | | PR 3542 * buildrun.cxx (compile_pass): Add an autoconf to check the kernel supports batch unregistration. * tapsets.cxx (dwarf_derived_probe_group::emit_module_decls): Add an array of probe pointers for batch unregistration. * tapsets.cxx (dwarf_derived_probe_group::emit_module_exit): Use unregister_k(ret)probes if it is supported. * runtime/autoconf-unregister-kprobes.c : New file.
* PR5516: assignment to $pointersfche2008-03-031-20/+29
| | | | | | | | | | | | | | | | | | | | | 2008-03-03 Frank Ch. Eigler <fche@elastic.org> PR5516 * elaborate.cxx (symbol_fetcher, dead_assignment_remover): Support unresolved $target lvalues. Propagate pretty error messages. * staptree.cxx (varuse_collecting_visitor target_symbol): Ditto. * staptree.h: Corresponding decl. * loc2c.c: c_translate_pointer_store: New function. * loc2c.h: Corresponding decl. * tapsets.cxx (dwflpp::translate_final_fetch_or_store): Call it for $target pointer assignments. 2008-03-03 Frank Ch. Eigler <fche@elastic.org> PR5516 * buildok/twentynine.stp: New test.
* PR5045: clean up after interruptsfche2008-02-281-0/+6
| | | | | | | | | | | 2008-02-28 Frank Ch. Eigler <fche@elastic.org> PR5045 * session.h (pending_interrupts): New global. * main.cxx (handle_interrupts): New fn to handle SIGINT* etc. * elaborate.cxx, translate.cxx, tapsets.cxx, main.cxx (*): Insert pending_interrupts escape hatches inside potentially timetaking loops. * buildrun.cxx: Don't deal with signals.
* PR5787, PR2608: .statement(NUM) probing fixesfche2008-02-231-46/+65
| | | | | | | | | | | | | | | | | | | 2008-02-22 Frank Ch. Eigler <fche@elastic.org> PR5787, PR2608, .statement() * tapsets.cxx (query_dwarf_func): Process .statement(NUM) probes too. (query_cu): Ditto. (query_func_info): Bypass prologue searching for .statement() probes. (query_cu): Ditto. (build_blacklist): Remove unsightly empty first alternative in "^(|foo)$" regexps. Show them for -vvv. * buildrun.cxx (compile_pass): Don't turn on "gcc -Q" on until -vvvv. 2008-02-22 Frank Ch. Eigler <fche@elastic.org> * systemtap.base/stmtvars.exp: New test for PR 5787.
* 2008-02-20 David Smith <dsmith@redhat.com>dsmith2008-02-201-19/+63
| | | | | | | | | | | | | | | | | * tapsets.cxx (struct mark_derived_probe): Renamed 'probe_sig' to 'probe_format'. (mark_derived_probe::mark_derived_probe): Added new "format" probe point component. (mark_derived_probe::parse_probe_format): Renamed from 'mark_derived_probe::parse_probe_sig'. (struct mark_builder): Added typedefs. Converted mark_cache from a map to a multimap to handle markers with the same name but different formats. (mark_builder::build): Added new 'format' probe parameter. (register_standard_tapsets): Added new 'format' marker probe optional parameter. * stapprobes.5.in (parts): Documented new "format" probe component.
* 2008-02-19 Roland McGrath <roland@redhat.com>roland2008-02-201-3/+11
| | | | | | | * tapsets.cxx (query_module): Use dwfl_module_getdwarf rather than dwfl_module_getelf for e_machine check. (dwarf_query::get_blacklist_section): Likewise for section search. Ignore non-SHF_ALLOC sections.
* 2008-02-19 Roland McGrath <roland@redhat.com>roland2008-02-201-60/+65
| | | | | * tapsets.cxx (query_module): Use dwfl_module_getdwarf rather tha dwfl_module_getelf for e_machine check.
* 2008-02-19 Frank Ch. Eigler <fche@elastic.org>fche2008-02-191-2/+4
| | | | | * tapsets.cxx (query_module): Tweak elf-machine checking to better represent elfutils idioms.
* PR5766: back to regexp-based blacklistingfche2008-02-191-66/+103
| | | | | | | | | | | | | | 2008-02-19 Frank Ch. Eigler <fche@elastic.org> PR 5766. * tapsets.cxx (build_blacklist): Switch (back) to regexp-based blacklist construction ... (blacklist_p): ... and querying. 2008-02-19 Frank Ch. Eigler <fche@elastic.org> PR5766. * semko/fortyfive.stp: New test.
* 2008-02-19 David Smith <dsmith@redhat.com>dsmith2008-02-191-1/+2
| | | | | | | PR 5672. * tapsets.cxx (mark_derived_probe): Call probe_point copy ctor to shallow-copy incoming base probe location before recomputing/overwriting it.
* dwarf speedupfche2008-02-151-0/+10
| | | | | * tapsets.cxx (function_name_last_match): New function. (query_dwarf_func): Call it to stop unnecessary further iteration.
* 2008-02-13 Frank Ch. Eigler <fche@elastic.org>fche2008-02-131-0/+5
| | | | | | PR 5759 * tapsets.cxx (build_blacklist): Add some CONFIG_PREEMPT-related functions.
* PR4393: fix relocatable-kernel global $variable accessfche2008-02-121-0/+16
| | | | | | | | | | | | | 2008-02-12 Frank Ch. Eigler <fche@elastic.org> PR 4393 * tapsets.cxx (emit_address): Support relocatable kernels. (dwarf_derived_probe ctor): Hack around for missing USHRT_MAX. * elaborate.cxx (semantic_pass): Increment rc if exception caught. 2008-02-12 Frank Ch. Eigler <fche@elastic.org> * systemtap.pass1-4/buildok.exp: No longer kfail buildok/seventeen.
* 2008-02-12 Martin Hunt <hunt@redhat.com>hunt2008-02-121-3/+3
| | | | | PR 5757 * tapsets.cxx, translate.cxx: Cleanup findentation a bit.
* 2008-02-04 David Smith <dsmith@redhat.com>dsmith2008-02-041-11/+78
| | | | | | | | | | | | | PR 4446 (partial) * tapsets.cxx (mark_var_expanding_copy_visitor::visit_target_symbol_arg): New function. (mark_var_expanding_copy_visitor::visit_target_symbol_format): New function. (mark_var_expanding_copy_visitor::visit_target_symbol): Handles "$arg" or "$format". (mark_derived_probe_group::emit_module_decls): Sets up "$format" data.
* update copyright years for recent checkinsfche2008-01-281-1/+1
|
* 2008-01-28 David Smith <dsmith@redhat.com>dsmith2008-01-281-6/+6
| | | | | * tapsets.cxx (dwarf_derived_probe_group::emit_module_decls): Added 'const' to several members of stap_dwarf_probes.
* PR5673: reduce total size of generated .ko's from wildly wildcarded scriptsfche2008-01-261-26/+98
| | | | | | | | | | | | | | | 2008-01-26 Frank Ch. Eigler <fche@elastic.org> PR 5673. * tapsets.cxx (dwarf_derived_probe_group): Split stap_dwarf_probes[] into bss-carried kprobes structs. Tune embedded strings for minimizing relocation-vs-fixed-buffer wastage. * tapsets.cxx (dwarf_derived_probe): Impose .maxactive() limits. 2008-01-26 Frank Ch. Eigler <fche@elastic.org> PR 5673. * testsuite/parseko/maxactive{04,05}.stp: New tests.
* PR 5672: fix generated dwarf probe point names from wildcardsfche2008-01-251-1/+1
| | | | | | | | | | 2008-01-25 Frank Ch. Eigler <fche@elastic.org> PR 5672. * staptree.cxx (probe_point copy ctor): New function. * staptree.h: Declare it. * tapsets.cxx (dwarf_derived_probe ctor): Call it to shallow-copy incoming base probe location before recomputing/overwriting it.
* PR2521: configurable debuginfo search pathfche2008-01-231-1/+4
| | | | | | | | | | | 2008-01-23 Frank Ch. Eigler <fche@elastic.org> PR 2151 * tapsets.cxx (dwflpp::setup): Parametrize debuginfo_path. * stap.1.in: Document this. PR 2521. * systemtap.base/debugpath.exp: New test.
* PR 4936: probe pont conditions part 2; reorg in prep for full rewritingfche2008-01-181-27/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-01-17 Frank Ch. Eigler <fche@elastic.org> PR 4935. Reorganize probe condition implementation. * elaborate.cxx (add_condition): New function. (derived_probe): Remove condition member. (derived_probe ctors): Assert non-null incoming probe/location ptrs. (insert_condition_statement): Remove; turn into ... (semantic_pass_conditions): New pass-2 subpass. (semantic_pass_symbols, visit_symbol, visit_functioncall, find_var): Detect some condition-related error cases. (match_key): Change type to exp_type from tok_type. Update callers. (alias_expansion_builder): Propagate probe conditions. * staptree.cxx (probe): Remove condition field and related functions. * tapsets.cxx (dwarf_derived_probe ctor): Compute replacement wildcard-expanded probe_point preserving more of the original location. (mark_derived_probe ctor): Make similar to others - take location rather than condition parameters. * translate.cxx (emit_common_header): Tweak ordering of tmpcounter traversal and hashkey expression generation. * elaborate.h: Corresponding changes. 2008-01-17 Frank Ch. Eigler <fche@elastic.org> PR 4935. * semko/forty.stp, fortyone.stp, fortytwo.stp: New tests. * semok/twentynine.stp: Weaken test since condition expressions have become more tightly constrained.
* 2008-01-17 David Smith <dsmith@redhat.com>dsmith2008-01-171-0/+19
| | | | | | | * tapsets.cxx (perfmon_var_expanding_copy_visitor::visit_target_symbol): Print an error when trying to use the perfmon target variable '$counter as an array or structure.
* 2008-01-17 David Smith <dsmith@redhat.com>dsmith2008-01-171-0/+19
| | | | | | | * tapsets.cxx (procfs_var_expanding_copy_visitor::visit_target_symbol): Print an error when trying to use the procfs target variable '$value' as an array or structure.
* To make systemtap compatible with elfutils-0.131srinivasa2008-01-171-42/+42
|
* 2008-01-16 David Smith <dsmith@redhat.com>dsmith2008-01-161-1/+19
| | | | | | PR 5608. * tapsets.cxx (visit_target_symbol): Print an error when trying to use a marker argument as an array or structure.
* improve missing kernel-debuginfo messagefche2008-01-091-1/+6
|
* 2007-12-05 Masami Hiramatsu <mhiramat@redhat.com>hiramatu2007-12-051-4/+6
| | | | | | | | | | | | | | | | | | PR 4935 * tapsets.cxx (dwarf_derived_probe::dwarf_derived_probe): Allow user to access kernel variables in the condition of probe points. * stapprobes.5.in : Document the conditional probe point. * NEWS : Ditto. * parseok/five.stp: Add an example of conditional probe point. * parseko/probepoint04.stp: New test for conditional probe point. * parseko/probepoint05.stp: Ditto. * parseko/probepoint06.stp: Ditto. * parseko/probepoint07.stp: Ditto. * parseko/probepoint08.stp: Ditto. * parseko/probepoint09.stp: Ditto. * semok/twentynine.stp: Ditto. * semko/thirtynine.stp: Ditto. * systemtap.base/onoffprobe.*: Ditto.
* 2007-11-29 David Smith <dsmith@redhat.com>dsmith2007-11-291-3/+6
| | | | | | * tapsets.cxx (mark_derived_probe::initialize_probe_context_vars): Handles the case where one marker has more than one string argument.
* 2007-11-20 Masami Hiramatsu <mhiramat@redhat.com>hiramatu2007-11-201-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | PR 4935. * parse.cxx (parser::parse_probe_point): Parse "if" condition following probe point. * staptree.h (probe_point): Add "condition" field. (probe): Add "condition" field and "add_condition" method. (deep_copy_visitor): Add "deep_copy" method for the expression. * staptree.cxx (probe_point::probe_point): Initalize it. (probe::add_condition): Implement it. (probe::print): Output "condition" field. (probe::str): Ditto. (deep_copy_visitor::deep_copy): Implement it. * elaborate.h (derived_probe): Add "insert_condition_statement" method. * elaborate.cxx (derived_probe::derived_probe): Initialize "condition" field, and insert a condition check routine on the top of body. (derived_probe::insert_condition_statement): Implement it. (alias_expansion_builder::build): Pass the condition from the alias referer to new alias. * tapsets.cxx (be_derived_probe): Remove unused constructor. (dwarf_derived_probe::dwarf_derived_probe): Insert a condition check routine on the top of body. (mark_derived_probe::mark_derived_probe): Ditto. (mark_builder::build): Pass the base location to mark_derived_probe.
* 2007-11-15 David Smith <dsmith@redhat.com>dsmith2007-11-151-13/+9
| | | | | | | | | | | * tapsets.cxx (mark_derived_probe::initialize_probe_context_vars): Updated to work with latest LTTNG patch patch-2.6.24-rc2-lttng-0.10-pre23.tar.bz2. (mark_derived_probe_group::emit_module_decls): Ditto. (mark_derived_probe_group::emit_module_init): Ditto. (mark_derived_probe_group::emit_module_exit): Ditto. * translate.cxx (c_unparser::emit_common_header): Ditto.
* 2007-11-15 David Smith <dsmith@redhat.com>dsmith2007-11-151-322/+63
| | | | | | | | | | | | | | * tapsets.cxx: Removed mark_query structure. (mark_derived_probe::mark_derived_probe): Just looks for "kernel" marker probes. (mark_builder::build_no_more): No longer kern_dw, instead clears the marker cache. (mark_builder::build): Now parses Module.markers file to find marker list and stores them in a cache. (register_standard_tapsets): Removed 'module("foo").mark("bar")'. All markers now go through 'kernel.mark("bar")'. * stapprobes.5.in (parts): Updated marker text.
* 2007-11-12 Martin Hunt <hunt@redhat.com>hunt2007-11-121-0/+1
| | | | * tapsets.cxx (build_blacklist): Add __raw_spin_is_locked.
* 2007-10-15 David Smith <dsmith@redhat.com>dsmith2007-10-151-2/+7
| | | | | | | * tapsets.cxx (mark_query::handle_query_module): Checks for marker to be in the proper section. (mark_derived_probe_group::emit_module_decls): Updated emitted marker C code for 10/2/2007 markers patch. Fixes PR 5178.
* 2007-10-15 David Smith <dsmith@redhat.com>dsmith2007-10-151-8/+8
| | | | | | From David Wilder <dwilder@us.ibm.com> * tapsets.cxx (mark_query::handle_query_module): Updated to handle 64-bit platforms correctly.
* 2007-10-12 David Smith <dsmith@redhat.com>dsmith2007-10-121-84/+246
| | | | | | | | | * tapsets.cxx (dwflpp::setup): Added 'debuginfo_needed' parameter to not error if no debuginfo present. (hex_dump): New function. (mark_query::handle_query_module): Updated for 10/2/2007 markers patch. Currently only handles markers in the kernel image itself - not in modules.
* PR 5709kenistoj2007-10-081-4/+4
| | | | | | | | | | | | | | | | | | | | | | | * main.cxx: Add pass 4.5: make uprobes.ko in runtime/uprobes * buildrun.cxx: Add uprobes_enabled() and make_uprobes(). Factor run_make_cmd() out of compile_pass(). * buildrun.h: Add uprobes_enabled and make_uprobes decls. * tapsets.cxx: Do correct #include for modprobed uprobes.ko; set need_uprobes in pass 2. * session.h: Add need_uprobes * runtime/staprun/common.c: Add -u option -> need_uprobes * runtime/staprun/staprun_funcs.c: Generalize insert_module() to support inserting uprobes.ko. * runtime/staprun/staprun.c: Add enable_uprobes(). insert_module call becomes insert_stap_module(). * runtime/staprun/staprun.h: Reflect insert_module() and need_uprobes changes * runtime/uprobes/*.[c,h]: uprobes is built as a module, rather than included into the source of the stap-generated module. * runtime/uprobes/Makefile: Added
* 2007-10-02 Frank Ch. Eigler <fche@redhat.com>fche2007-10-021-37/+86
| | | | | | | | | | | | | | | | | | | PR 5078 * tapsets.cxx (be_derived_probe): Rework to add error probe support. Emit probe description array in C for traversal by generated code. * register_standard_tapsets: Add error probes. * stapprobes.5.in: Document. * translate.cxx (emit_module_init): Handle errors that may occur during begin probes. (emit_module_exit): Use schedule() rather than cpu_relax() during shutdown synchronization wait loop. * staptree.cxx (probe::printsig): Put multiple probe points on same line. 2007-10-02 Frank Ch. Eigler <fche@redhat.com> PR 5078 * semok/twentysix.stp, systemtap.base/beginenderror.*: New tests.
* If uprobes isn't in the kernel, pull it in from the runtime.kenistoj2007-09-281-5/+6
|
* 2007-09-25 David Smith <dsmith@redhat.com>dsmith2007-09-251-8/+52
| | | | | | | | | * tapsets.cxx (mark_query::handle_query_module): Updated for 9/18/2007 markers patch. (mark_derived_probe::parse_probe_sig): Ditto. (mark_derived_probe_group::emit_module_decls): Ditto. (mark_derived_probe_group::emit_module_init): Ditto. (mark_derived_probe_group::emit_module_exit): Ditto.