summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
Commit message (Collapse)AuthorAgeFilesLines
...
* 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.
* 2007-09-17 David Smith <dsmith@redhat.com>dsmith2007-09-171-0/+32
| | | | * tapsets.cxx (procfs_builder::build): Validate procfs path.
* 2007-09-14 David Smith <dsmith@redhat.com>dsmith2007-09-141-1/+3
| | | | | | | | | PR 1154 * tapsets.cxx (procfs_var_expanding_copy_visitor::visit_target_symbol): Disallows reading from $value in a procfs read probe. (procfs_derived_probe_group::emit_module_init): Updated previous fix.
* 2007-09-14 David Smith <dsmith@redhat.com>dsmith2007-09-141-9/+21
| | | | | | | PR 1154 * tapsets.cxx (procfs_derived_probe_group::emit_module_init): Fixed problem where if only one type (read/write) of procfs probe was defined, the generated code wouldn't compile.
* 2007-09-13 David Smith <dsmith@redhat.com>dsmith2007-09-131-18/+40
| | | | | | | | | | PR 1154 * tapsets.cxx (procfs_derived_probe::procfs_derived_probe): Removed debug print. (procfs_derived_probe_group::emit_module_decls): Improved error handling and added support for procfs.write probes. (procfs_var_expanding_copy_visitor::visit_target_symbol): Removed debug print.
* 2007-09-12 David Smith <dsmith@redhat.com>dsmith2007-09-121-37/+293
| | | | | | * translate.cxx (c_unparser::emit_common_header): Added 'data' variable to context structure to support procfs probes. * tapsets.cxx: Improved procfs probe handling.
* 2007-09-10 David Smith <dsmith@redhat.com>dsmith2007-09-101-32/+73
| | | | | | | | * tapsets.cxx (procfs_derived_probe_group::emit_module_init): Improved procfs probe handling (still non-working). (procfs_builder::build): Ditto. (register_standard_tapsets): Ditto. (all_session_groups): Ditto.
* 2007-09-10 Martin Hunt <hunt@redhat.com>hunt2007-09-101-0/+97
| | | | | * tapsets.cxx, session.h, elaborate.cxx: Start of procfs interaction support. PR 1154.
* 2007-09-06 Masami Hiramatsu <mhiramat@redhat.com>hiramatu2007-09-061-1/+4
| | | | | | | | PR4542 * tapsets.cxx (dwarf_query::build_blacklist): add __switch_to to blacklisted_return_probes on i686 * systemtap.stress/current.stp: Don't probe the return of __switch_to on i686
* 2007-08-24 Frank Ch. Eigler <fche@redhat.com>fche2007-08-241-37/+95
| | | | | | | | | | | | | | | | PR 4899 * tapsets.cxx (dwflpp::has_single_line_record): Extended, abstraction violated. (iterate_over_srcfile_lines): Remove exactly line number match logic. Improve error message to offered better-checked alternative line numbers. (query_srcfile_line): Whoops, pass scope_die down for statement("...") probes, to enable $target var processing. 2007-08-24 Frank Ch. Eigler <fche@redhat.com> PR 4899 * buildok/fortytwo.stp: New test.
* 2007-08-10 Josh Stone <joshua.i.stone@intel.com>jistone2007-08-111-3/+0
| | | | | | | | | | | | | | | | | | | PR 4593 * translate.cxx (c_unparser::emit_common_header): Add an error_buffer to the context to allow dynamic error messages. * tapsets.cxx (dwflpp::express_as_string): Let deref / store_deref fill in last_error with a detailed message. runtime/ * loc2c-runtime.h (deref, store_deref): Set an error message with the pointer value and name into last_error, since it's hard to determine the details once you've already jumped to deref_fault. tapset/ * conversions.stp (kernel_string, kernel_long, kernel_int, kernel_short, kernel_char, user_string_warn): Use the CONTEXT->error_buffer to create an error message instead of a static local array.
* 2007-05-25 Frank Ch. Eigler <fche@redhat.com>fche2007-05-261-8/+187
| | | | | | | | | | | | PR 4255 teaser. * elaborate.cxx (has_null_param): New function. * elaborate.h: Declare it. * session.h: Include uprobe_derived_probes group. * tapsets.cxx (uprobe_*): New classes. (all_session_groups): List uprobes in list. (register_standard_tapset): Interpret process(#).statement(#).absolute and process(#).statement(#).absolute.return probe points.
* 2007-05-25 Martin Hunt <hunt@redhat.com>hunt2007-05-251-0/+1
| | | | | Patch from Quentin Barnes. * tapsets.cxx (query_module): Add support for arm.
* 2007-05-21 David Smith <dsmith@redhat.com>dsmith2007-05-211-409/+561
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR 4446. * elaborate.h (derived_probe::initialize_probe_context_vars): New virtual function that will allow added context vars to be initialized. * translate.cxx (c_unparser::emit_common_header): Added 'mark_va_list'. (c_unparser::emit_probe): Calls new function initialize_probe_context_vars. (translate_pass): Includes linux/marker.h if CONFIG_MARKERS is defined. * tapsets.cxx (struct dwarf_query): Split into base_query (which contains most of the original code) and a much smaller dwarf_query class. (struct base_query): New class. (dwarf_query::handle_query_module): New function. (query_module): Moved code into dwarf_query::handle_query_module(). (mark_derived_probe): Adjusted for new kernel markers. (mark_derived_probe_group): Ditto. (mark_var_expanding_copy_visitor): Ditto. (mark_var_expanding_copy_visitor::visit_target_symbol): Generates code for new kernel markers. (struct mark_query): New class. (mark_query::handle_query_module): New function. (mark_derived_probe::mark_derived_probe): Adjusted for new kernel markers. (mark_derived_probe::join_group): Ditto. (mark_derived_probe::emit_probe_context_vars): Ditto. (mark_derived_probe::parse_probe_sig): New function. (mark_derived_probe::initialize_probe_context_vars): New function. (mark_derived_probe::emit_module_decls): Adjust for new kernel markers. (mark_derived_probe::emit_module_init): Ditto. (mark_derived_probe::emit_module_exit): Ditto. (struct mark_builder): Ditto. (mark_builder::build): Ditto.
* grammar fixfche2007-05-061-1/+1
|
* 2007-05-06 Frank Ch. Eigler <fche@elastic.org>fche2007-05-061-3/+38
| | | | | | | | | | | | PR 1305. * tapsets.cxx (iterate_over_srcfile_lines): Exclude approximate file:lineno matches optimistically returned by dwarf_getsrc_file. (query_srcfile_line): Use Dwarf_Line line number for constructing derived_probe location string. 2007-05-06 Frank Ch. Eigler <fche@elastic.org> * semko/thirtynine.stp: New test.
* 2007-04-24 David Smith <dsmith@redhat.com>dsmith2007-04-241-0/+1
| | | | | * tapsets.cxx (common_probe_entryfn_epilogue): Increment error_count when overload processing kicks in.
* 2007-04-23 Frank Ch. Eigler <fche@redhat.com>fche2007-04-231-6/+48
| | | | | * tapsets.cxx (die_entrypc): Expand search algorithm to check for "aranges", as sometimes occurs for inlined functions.
* 2007-04-04 Frank Ch. Eigler <fche@elastic.org>fche2007-04-041-0/+2
| | | | | | GCC 4.3 compatibility patches from Debian. * buildrun.cxx, hash.cxx, tapsets.cxx, translate.cxx: #include a few more C++ headers.