summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 2006-12-19 Frank Ch. Eigler <fche@redhat.com>fche2006-12-191-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | PR 3522. * tapsets.cxx (dwflpp::emit_address): Call _stp_module_relocate only once per session. Error message cleanup: duplicate elimination etc. * session.h (saved_errors): Store a set of 'em. (num_errors): Return set size. Remove old numeric field. Update all callers. * elaborate.cxx (systemtap_session::print_errors): Print each encountered message just once. * staptree (semantic_error): Make msg2 writeable. Add a chain field. * tapsets.cxx (*var_expanding*:visit_target_symbol): Set saved semantic_error's chain field. * elaborate.cxx (register_library_aliases, visit_foreach_loop, visit_functioncall, derive_probes): Plop "while: ..." error message prefix/suffix right into the semantic_error message string. * parse.cxx (lexer::scan): Identify erroneous token better in error message for unresolvable $N/@M command line args. * util.h (lex_cast_hex): Use std::hex, not std::ios::hex. 2006-12-19 Frank Ch. Eigler <fche@redhat.com> PR 3522. * buildok/twentyfive.stp: New test for static $var access.
* 2006-12-16 Frank Ch. Eigler <fche@elastic.org>fche2006-12-161-1/+1
| | | | | | * main.cxx (main): Print version strings if verbose >=2 . * tapsets.cxx (common_probe_entryfn_prologue): Decorate an emitted local with __restrict__.
* 2006-12-14 David Smith <dsmith@redhat.com>dsmith2006-12-141-0/+21
| | | | | | | | | * tapsets.cxx (struct dwarf_var_expanding_copy_visitor): Added 'return_ts_map' member variable. (dwarf_var_expanding_copy_visitor::visit_target_symbol): Optimization. If we've already seen this target variable in this return probe, return the last replacement (instead of creating a new replacement).
* 2006-12-13 David Smith <dsmith@redhat.com>dsmith2006-12-131-67/+116
| | | | | | | | | | | | | * tapsets.cxx (struct dwarf_var_expanding_copy_visitor): Added 'add_probe' member variable. Initialized it in ctor. (dwarf_var_expanding_copy_visitor::visit_target_symbol): Optimization. Instead of generating one entry probe per target variable accessed in a return probe, now just generates one entry probe for all target variables accessed in a particular return probe. It does this by creating a new probe in the new 'add_probe' member variable. (dwarf_derived_probe::dwarf_derived_probe): If add_probe isn't NULL, make sure it gets derived later.
* 2006-12-07 Josh Stone <joshua.i.stone@intel.com>jistone2006-12-081-4/+21
| | | | | | | | | | | | | | | | | | | | | | | PR 3624. * tapsets.cxx (struct be_derived_probe): Add a new priority parameter for begin/end probes, and a comparison function for sorting. (be_builder::build): Parse the priority & pass it to be_derived_probe. (be_derived_probe_group::emit_module_init, emit_module_exit): Sort the probe list by priority before emitting any code. (register_standard_tapsets): Add new begin/end variants. * parse.cxx (parser::parse_literal): Allow negative numeric literals, by checking for a '-' unary operator right before a number. testsuite/ * systemtap.base/be_order.exp, systemtap.base/be_order.stp, semok/beginend.stp: New tests for begin/end priorities. * lib/stap_run.exp: Anchor OUTPUT_CHECK_STRING to the end of output. * systemtap.base/maxactive.exp: Fix to compare output to the end. * systemtap.base/probefunc.exp: Ditto. * systemtap.samples/ioblocktest.exp: Ditto. * systemtap.samples/ioblocktest.stp: Ditto. * systemtap.samples/tcptest.exp: Ditto.
* 2006-12-06 Josh Stone <joshua.i.stone@intel.com>jistone2006-12-071-12/+31
| | | | | | | | | | | | | | | | | | | | | PR 3623. * tapsets.cxx (timer_derived_probe_group::emit_module_decls): Restart the timers if we are in STARTING or RUNNING state. (hrtimer_derived_probe_group::emit_module_decls): Ditto. (be_derived_probe_group::emit_module_init): indicate error to the rest of the initialization if any begin probes fail. * translate.cxx (c_unparser::emit_module_init): Set the global error state on an initialization error so timers know to shut down. runtime/ * time.c (stp_timer_reregister): Add a global to control whether the gettimeofday timer should restart itself, for clean shutdown. (__stp_time_timer_callback): Check the global. (_stp_kill_time, _stp_init_time): Set the global. (_stp_gettimeofday_ns): Switch to preempt_enable_no_resched. * time.c (__stp_time_cpufreq_callback): Use the cpu# from the notifier. (_stp_init_time): No need to disable preemption around cpufreq init.
* * thanks to riel and viro, cleared up task_struct vs thread_info ↵fche2006-12-011-1/+1
| | | | misunderstanding
* 2006-11-30 Frank Ch. Eigler <fche@elastic.org>fche2006-11-301-3/+5
| | | | | * tapsets.cxx (common_probe_entryfn_prologue): Tweak insufficient stack detection logic.
* 2006-11-29 David Smith <dsmith@redhat.com>dsmith2006-11-291-28/+110
| | | | | | | | | | | | | * tapsets.cxx (struct dwarf_var_expanding_copy_visitor): Added 'add_block' member variable. Constructor sets it to NULL. (dwarf_var_expanding_copy_visitor::visit_target_symbol): Fixes the problem of accessing a cached target variable in a loop. Cached target variable is assigned to a temporary variable, which can be safely access multiple times. In addition, the cached value is deleted after being read. (dwarf_derived_probe::dwarf_derived_probe): Adds in the new block of code created in visit_target_symbol() to the beginning of the derived probe.
* 2006-11-28 David Smith <dsmith@redhat.com>dsmith2006-11-281-11/+16
| | | | | | | * tapsets.cxx (dwarf_var_expanding_copy_visitor::visit_target_symbol): Improved handling target variables in return probes by having a per-thread counter.
* 2006-11-26 Frank Ch. Eigler <fche@redhat.com>fche2006-11-261-3/+72
| | | | | | | | | | | | PRs 2685, 3596, toward 2725. * tapsets.cxx (common_probe_entryfn_prologue): Skip probe on insufficient stack. (build_blacklist): Add a slew of lock-related calls. (query_module): Check for debuginfo architecture match. * translate.cxx (translate_pass): Add default MINSTACKSPACE. * configure.ac: Link stap with -lebl too. * configure: Regenerated. * stap.1.in: Document MINSTACKSPACE parameter.
* 2006-11-20 David Smith <dsmith@redhat.com>dsmith2006-11-201-1/+117
| | | | | | | | * tapsets.cxx (dwarf_var_expanding_copy_visitor::visit_target_symbol): BZ 1382. Target variables can be accessed in return probes. A new function entry probe is generated that saves the target variables so that they can be accesssed in the return probe.
* 2006-11-17 Frank Ch. Eigler <fche@redhat.com>fche2006-11-171-5/+8
| | | | | | | | | | | | | * tapsets.cxx (d_v_e_c_v::visit_target_symbol): Restore lost exception-saving functionality that improves error messages for incorrect $target expressions. (translate_components): Systematize error messages somewhat. * translate.cxx (emit_function, emit_probe): Clarify "array locals" error message. 2006-11-17 Frank Ch. Eigler <fche@redhat.com> * semko/thirtysix.stp, transko/three.stp: New tests.
* 2006-11-10 David Smith <dsmith@redhat.com>dsmith2006-11-101-7/+7
| | | | | | | * tapsets.cxx (dwarf_var_expanding_copy_visitor::visit_target_symbol): Minor improvement to error handling by throwing exceptions before allocations are done.
* 2006-11-09 David Smith <dsmith@redhat.com>dsmith2006-11-091-5/+31
| | | | | | | | | | | | * tapsets.cxx (dwarf_query::dwarf_query): Looks for "maxactive" return probe variant. (dwarf_derived_probe::dwarf_derived_probe): Initializes has_maxactive and maxactive_val member variables. (dwarf_derived_probe::register_function_variants): Matches "maxactive" return probe variant. (dwarf_derived_probe_group::emit_module_decls): Emits code to use maxactive data. (dwarf_derived_probe_group::emit_module_init): Ditto.
* 2006-11-08 Frank Ch. Eigler <fche@elastic.org>fche2006-11-081-44/+1
| | | | | | * util.h (lex_cast_qstring): Move def'n here. Also quote \. (stringify, lex_cast, lex_cast_hex): Move defn here. * buildrun.cxx, elaborate.cxx, main.cxx, staptree.cxx: Adapt.
* 2006-11-07 Frank Ch. Eigler <fche@elastic.org>fche2006-11-071-0/+1
| | | | | * tapsets.cxx (profile_derived_probe_group::emit_module_decls): Pass along incoming pt_regs to context of timer.profile handlers.
* 2006-11-03 Frank Ch. Eigler <fche@elastic.org>fche2006-11-031-6/+18
| | | | | * tapsets.cxx (emit_address): Emit calls to _stp_module_relocate for $target-variable addresses in relocatable sections.
* New dynamic module and symbol handling code.hunt2006-11-021-53/+1
|
* Fix an indentation glitch.jistone2006-11-011-1/+1
|
* 2006-11-01 Josh Stone <joshua.i.stone@intel.com>jistone2006-11-011-9/+20
| | | | | | | * tapsets.cxx (timer_derived_probe_group::emit_interval): New - Fixes randomization for jiffies timers in ms mode. (timer_derived_probe_group::emit_module_decls): Use emit_interval. (timer_derived_probe_group::emit_module_init): Ditto.
* 2006-10-31 Frank Ch. Eigler <fche@redhat.com>fche2006-11-011-1627/+774
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Probe registration rework. Offline dwarf processing for better cross-instrumentation. * elaborate.h (derived_probe): Remove registration-related code generation API. Add new function sole_location(). (derived_probe_group): Reworked this and associated classes. * session.h (systemntap_session): Create individual per-category derived_probe_groups. * elaborate.cxx (derived_probe_group): Reworked. (alias_derived_probe): Switch to new derived_probe API. (semantic_pass_symbols): Ditto. * translate.cxx (mapvar init): Check for array initialization error. (emit_module_init): Handle such failures, at least in theory. (emit_module_exit): Switch to new derived_probe_group API. Call cpu_relax() during shutdown busywait. (emit_common_header): Elide context variables for elided handler fns. (c_unparser::emit_probe): Implement new, improved duplicate elimination technique for probe handlers. Leave two older ones behind as compile options for education. * tapsets.cxx (*): Reworked all probe registration code, moving it from derived_probes into derived_probe_groups. Shrunk output code. Temporarily disabled probe timing and perfmon/mark probes. (dwflpp): Use offline reporting, so that module matching and relocation is performed at run time. (dwarf_query): Remove flavour logic, now supplanted by other duplicate elimination code. (dwarf_derived_probe): Reworked construction, centralized module/section/offset computations. * tapsets.h (all_session_groups): New little helper. * main.cxx (main): For pass-2 message, print number of embeds too. * systemtap.spec.in: Add a "BuildRequires: dejagnu" for make check. * configure.ac: Bump version to 0.5.11. * configure: Regenerated.
* 2006-10-24 David Smith <dsmith@redhat.com>dsmith2006-10-241-0/+1
| | | | | * tapsets.cxx (build_blacklist): Added "atomic_notifier_call_chain" to the blacklist (Bugzilla #3379).
* 2006-10-12 Martin Hunt <hunt@redhat.com>hunt2006-10-121-0/+3
| | | | | | | | | | | * translate.cxx (emit_common_header): Add a kretprobe_instance pointer to struct context. (emit_symbol_data): Include absolute symbols. * tapsets.cxx (emit_common_header): Initialize the kprobe instance pointer to 0; (emit_probe_entries): Set kretprobe instance pointer if appropriate.
* 2006-10-11 David Smith <dsmith@redhat.com>dsmith2006-10-111-0/+89
| | | | | | | | | | | | | | * tapsets.cxx (in_kprobes_function): New function that looks up the values of '__kprobes_text_start' and '__kprobes_text_end' in the kernel to be able to automatically exclude functions marked as '__kprobes' (BZ# 2639). (blacklisted_p): Calls in_kprobes_function(). (query_kernel_module): Utility function that finds the kernel module. * session.h (struct systemtap_session): Added kprobes_text variables - kprobes_text_initialized, kprobes_text_start, and kprobes_text_end. * elaborate.cxx (systemtap_session::systemtap_session): kprobes_text variables get initialized.
* 2006-09-28 Josh Stone <joshua.i.stone@intel.com>jistone2006-09-281-7/+6
| | | | | | | PR 3278 * tapsets.cxx (hrtimer_derived_probe::emit_probe_entries): Only restart timers when the session is still active and we updated the expire time.
* 2006-09-27 Josh Stone <joshua.i.stone@intel.com>jistone2006-09-281-152/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * session.h (struct systemtap_session): Add kernel_base_release to store the kernel version without the -NNN suffix. * main.cxx (main): Generate and use kernel_base_release. * parse.cxx (eval_pp_conditional): Use kernel_base_release. * tapsets.cxx (profile_derived_probe::profile_derived_probe): Use kernel_base_release. * tapsets.cxx (timer_builder::build): Support a wide variety of timer varients -- jiffies, s/sec, ms/msec, us/usec, ns/nsec, and hz. Use hrtimers automatically on kernels that have it. (timer_builder::register_patterns): Bind all of the new timer varients in one easy place. (register_standard_tapsets): Call timer_builder::register_patterns. (struct hrtimer_builder): Removed since timer_builder is generic. * stapprobes.5.in: Document new timer.* functionality. * tapsets.cxx (hrtimer_derived_probe_group::emit_probes): Add a shared global for the actual hrtimer resolution, _stp_hrtimer_res. (hrtimer_derived_probe_group::emit_module): Init _stp_hrtimer_res. (hrtimer_derived_probe::emit_interval): Limit intervals at a minimum to the hrtimer's actual resolution. (hrtimer_derived_probe::emit_probe_entries): Forward timers based on previous expiration instead of restarting relative. testsuite/ * buildok/fourteen.stp: Test new timer functionality.
* Do not throw sematic error unless probes actually used.wcohen2006-09-131-2/+0
|
* Systemtap perfmon support to access the processors perfmon hardware.wcohen2006-09-121-2/+468
|
* 2006-09-08 David Smith <dsmith@redhat.com>dsmith2006-09-081-61/+653
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * elaborate.h (struct derived_probe): Replace emit_registrations() function with emit_registrations_start() and emit_registrations_end(). (struct derived_probe_group): Added emit_module_init(). (struct derived_probe_group_container): Added emit_module_init(), emit_module_init_call(), and emit_module_exit(). * elaborate.cxx (struct alias_derived_probe): Updated emit_regitrations calls. * translate.cxx (emit_module_init): Instead of actually emitting per-probe-point registrations/unregistrations, let the session's derived_probe_group_container do it. * tapsets.cxx (emit_probe_timing): New function that handles probe timing code. (be_derived_probe::emit_registrations_start): Renamed from emit_registrations. (be_derived_probe_group::emit_module_init): New function that outputs probes create and destroy functions. (dwarf_derived_probe::emit_registrations): Removed, but most code moved to emit_registrations_start(). (dwarf_derived_probe::emit_registrations_start): Handles details of multiple dwarf probe registrations. (dwarf_derived_probe::emit_registrations_end): Handles cleanup details of multiple dwarf probe registrations. (dwarf_derived_probe_group::emit_module_init): New function that outputs probes create and destroy functions. (timer_derived_probe::emit_registrations_start): Renamed from emit_registrations. Added mutiple probe handling. (timer_derived_probe::emit_registrations_end): Handles cleanup details of multiple probe registrations. (timer_derived_probe_group::emit_module_init): New function that outputs probes create and destroy functions. (profile_derived_probe::emit_registrations_start): Renamed from emit_registrations. Added mutiple probe handling. (profile_derived_probe::emit_registrations_end): Handles cleanup details of multiple probe registrations. (profile_derived_probe_group::emit_module_init): New function that outputs probes create and destroy functions. (mark_derived_probe::emit_registrations_start): Renamed from emit_registrations. Added mutiple probe handling. (mark_derived_probe::emit_registrations_end): Handles cleanup details of multiple probe registrations. (mark_derived_probe_group::emit_module_init): New function that outputs probes create and destroy functions. (hrtimer_derived_probe::emit_registrations_start): Renamed from emit_registrations. Added mutiple probe handling. (hrtimer_derived_probe::emit_registrations_end): Dummy function. (hrtimer_derived_probe_group::emit_module_init): New function that outputs probes create and destroy functions. (derived_probe_group_container::emit_module_init): Added function to call all probe group's emit_module_int functions. (derived_probe_group_container::emit_module_init_call): Added function to handle probe group initialization cleanup. (derived_probe_group_container::emit_module_exit): Added function to handle probe group cleanup.
* 2006-09-04 Frank Ch. Eigler <fche@elastic.org>fche2006-09-051-1/+3
| | | | | | | | Improve unresolved target-symbol error messages. * staptree.h (target_symbol): Add new field saved_conversion_error. * elaborate.cxx (typeresolution_info::visit_target_symbol): Throw that if found instead of generic error. * tapsets.cxx (t_v_f_c_v::visit_target_symbol): Set it.
* 2006-08-28 David Smith <dsmith@redhat.com>dsmith2006-08-281-0/+342
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * translate.cxx: Added inclusion of session.h. (translate_pass): Instead of asking each probe to emit itself, we ask the session's probes member variable to emit all the probes. * tapsets.cxx: Added inclusion of session.h. Added a register_probe member function to all derived_probe based classes. Added a derived_probe_group derived class for all probe types: (be_derived_probe_group): New class. (never_derived_probe_group): New class. (dwarf_derived_probe_group): New class. (timer_derived_probe_group): New class. (profile_derived_probe_group): New class. (mark_derived_probe_group): New class. (hrtimer_derived_probe_group): New class (derived_probe_group_container): New class. * elaborate.h: Removed inclusion of session.h since session.h now includes elaborate.h. (derived_probe): Added register_probe member function. (derived_probe_group): Added class definition. This is the base class of all of the derived probe groups - dwarf, timer, etc. (derived_probe_group_container): Added class definition. An instance of this class will be stored in the session and contain all the other probe groups. * elaborate.cxx (derived_probe_group::register_probe): Added derived_probe_group::register_probe stubs. (alias_derived_probe::register_probe): Added register_probe member function. (semantic_pass_symbols): After deriving a probe, the probes now register themselves with the session. * session.h: Includes elaborate.h to get derived_probe_group_container definition. systemtap_session class 'probes' member variable switched from a vector of derived probes to a derived_probe_group_container. * buildrun.cxx: Added inclusion of session.h since it was removed from elaborate.h. * main.cxx: Added inclusion of session.h since it was removed from elaborate.h. * parse.h: Added forward struct declarations. * staptree.h: Removed inclusion of session.h.
* 2006-08-23 Josh Stone <joshua.i.stone@intel.com>jistone2006-08-231-1/+2
| | | | | | | | | | PR 3093 From Eugeniy Meshcheryakov <eugen@debian.org>: * main.cxx (main): Use setenv instead of putenv, since gcc 4.2 doesn't like assigning string constants to char*. Also use const char* for result from getenv. * tapsets.cxx (dwflpp::setup): Copy string constant into a local array, to fix gcc 4.2 warning.
* Bugzilla Bug 2422: module("*") probes fail with debug-info-less modulesguanglei2006-08-011-2/+2
|
* 2006-06-30 Josh Stone <joshua.i.stone@intel.com>jistone2006-06-301-10/+15
| | | | | | * tapsets.cxx (hrtimer_builder::build): Enable hrtimers on >=2.6.17. * tapsets.cxx (hrtimer_derived_probe::emit_probe_entries): Correct compilation errors, fix return value.
* 2006-06-30 David Smith <dsmith@redhat.com>dsmith2006-06-301-7/+11
| | | | | | | | | | | | * tapsets.cxx (dwflpp::dwfl_assert): Added optional extra_msg parameter to be able to print out extra error message. (dwflpp::setup): Uses new 'extra_msg' parameter to dwfl_assert() to ask user to install kernel-debuginfo when dwfl_linux_kernel_report_kernel() or dwfl_linux_kernel_report_modules() fails (Bugzilla #2669). * buildrun.cxx (compile_pass): Checks to make sure module build directory exists before trying to run make there (Bugzilla #2669).
* 2006-06-27 Roland McGrath <roland@redhat.com>roland2006-06-271-51/+81
| | | | | | * tapsets.cxx (dwflpp::emit_address): New instance method. Get relocation details from Dwfl to emit in comment after address constant. (dwflpp::loc2c_emit_address): Just call that.
* 2006-06-05 David Smith <dsmith@redhat.com>dsmith2006-06-051-39/+130
| | | | | | | | | | | | | | | | | | | | | * tapsets.cxx (dwflpp::express_as_string): New function. Extracted from dwflpp::literal_stmt_for_local() so that dwflpp::literal_stmt_for_return() could also call it. (dwflpp::literal_stmt_for_local): Portion extracted to create dwflpp::express_as_string(). (dwflpp::literal_stmt_for_return): New function. Adds support for new symbolic access ("$return") to return value in .return probes. Fixes PR 1132. (target_variable_flavour_calculating_visitor::visit_target_symbol): Calls dwflpp::literal_stmt_for_return() when in a return probe and the variable name is "$return". (dwarf_var_expanding_copy_visitor::visit_target_symbol): Ditto. * stapfuncs.5.in: Noted that the retval() function is deprecated. * stapprobes.5.in: Corrected the name of the return value variable. * tapset/return.stp: Marked the retval() function as deprecated. * testsuite/semko/return01.stp: Added new test. * testsuite/semko/return02.stp: Ditto.
* 2006-06-02 Frank Ch. Eigler <fche@elastic.org>fche2006-06-021-2/+50
| | | | | | | | | | | | | | PR 2645. * stapprobes.5.in: Document "?" probe point suffix. * parse.cxx (parse_probe_point): Recognize "?" optional suffix. * elaborate.cxx (derive_probes): Observe probe_point->optional. * staptree.h, staptree.cxx: Corresponding changes. * tapsets.cxx (never_derived_probe, never_builder): New classes. (register_standard_tapsets): Support "never" probe point. * testsuite/buildok/six.stp, parseok/five.stp: Modifed tests. * translate.cxx (emit_module_init): Format "-t" (benchmarking) cycle-time reports similarly to "-v" (verbose) times.
* 2006-06-01 Josh Stone <joshua.i.stone@intel.com>jistone2006-06-011-4/+5
| | | | | | | * tapsets.cxx (hrtimer_derived_probe::emit_interval): update API usage of hrtimers in preparation of getting exports from the kernel. (hrtimer_derived_probe::emit_probe_entries): ditto
* 2006-05-26 Josh Stone <joshua.i.stone@intel.com>jistone2006-05-271-7/+56
| | | | | | | | * tapsets.cxx (build_blacklist): build the sets of blacklisted functions and function returns. Manually added many __kprobes functions that should not be probed. (dwarf_query::dwarf_query): Call build_blacklist. (dwarf_query::blacklisted_p): Use blacklist sets.
* 2006-05-25 Josh Stone <joshua.i.stone@intel.com>jistone2006-05-251-0/+2
| | | | | | * tapsets.cxx (dwarf_var_expanding_copy_visitor::visit_target_symbol): Free allocated memory when supressing target-variable errors
* 2006-05-24 Frank Ch. Eigler <fche@elastic.org>fche2006-05-251-23/+50
| | | | | | | | | Pass 4 speedup. * tapsets.cxx (derived_probe::emit_common_header): New function, to emit code formerly inlined by emit_probe_prologue/epilogue. * translate.cxx (emit_common_header): Call it. * elaborate.h: Corresponding changes.
* 2006-05-18 Frank Ch. Eigler <fche@elastic.org>fche2006-05-181-4/+4
| | | | | | | | | | | | | | | | | | | | | | | Organize "-t" output by script/parse level probes rather than derived-probes. * elaborate.cxx (derived_probe ctor): Remove name field setting. (alias_derived_probe): New class. (alias_expandion_builder::build): Create an instance of the above instead of parse-tree-level plain probe. * elaborate.h: Corresponding changes. (derived_probe::basest): Define. * staptree.cxx (probe ctor): Set new name field. * staptree.h (probe): Corresponding changes. (probe::basest): New field. * tapsets.cxx (emit_probe_prologue, emit_probe_entries): Switch to basest() probe name for Stat instance. (dwarf_derived_probe ctor): Stash away base probe. * translate.cxx (unparser::emit_probe): Remove index operand, just use probe name to generate symbols. (emit_module_init): Reorganize -t output in unregister functions. (translate_pass): Remove unparser::current_probenum field and all uses. * translate.h: Corresponding changes.
* 2006-05-15 Frank Ch. Eigler <fche@elastic.org>fche2006-05-161-5/+4
| | | | | | | | | * tapsets.cxx, translator.cxx (*): Designate more emitted functions as static. * translator.cxx (visit_print_format): Correct regression regression from two weeks ago. * stapfuncs.5.in: Tweak wording. Deprecate returnval() in favour of retval().
* 2006-05-05 Eugene Teo <eteo@redhat.com>eteo2006-05-051-2/+3
| | | | | | | | | PR 2433 * tapsets.cxx (dwarf_query::blacklisted_p): Extend the list of blacklisted .return probes to include "do_exit". Correct funcname typo for "sys_groupexit". * tapset/syscalls.stp: Remove .return probe aliases of never- returning syscall.exit and syscall.exit_group calls.
* 2006-05-03 Josh Stone <joshua.i.stone@intel.com>jistone2006-05-041-3/+5
| | | | | PR 2506 * tapsets.cxx (dwarf_query::blacklisted_p): skip probes in .exit.*
* "-t" option to collect information the number of times a probe runs andwcohen2006-05-021-1/+25
| | | | the average amount of time spent in the probe.
* 2006-04-25 Frank Ch. Eigler <fche@elastic.org>fche2006-04-251-12/+12
| | | | | | | | | | | | | | | | | PR 2427. * staptree.cxx (varuse_collecting_visitor::visit_embeddedcode): Support /* pure */ declaration. Stop using __tvar_ naming hack. (v_c_u::visit_print_format): Mark sprint and sprintf as side-effect-free. (deep_copy_visitor::visit_print_format): Propagate raw_components. * stap.1.in: Document declaration. * elaborate.cxx (semantic_pass_opt2): Verbose message tweak. (dead_stmtexpr_remover): Extend for more aggressive optimization. * tapsets.cxx (dwarf,mark_var_expanding_copy_visotor): Add /* pure */ declaration to rvalue expansions. * tapset/*.stp: Added /* pure */ declarations to many functions. * testsuite/parseok/unparsers.stp: Propagate guru mode flag. * testsuite/buildok/twentyfour.stp: New test.
* 2006-04-21 Frank Ch. Eigler <fche@elastic.org>fche2006-04-211-127/+212
| | | | | | | | | | | | | | | | | PR 953 * elaborate.h (derived_probe): Add field "name". Stop passing "probe index" to other emit_* calls. (emit_probe_context_vars): New member function. * elaborate.cxx (derived_probe ctor): Generate unique name. * translate.cxx (*): Adapt to index->name. (emit_probe): Realize that probe locals only occur at nesting=0. * tapsets.cxx (*derived_probe::emit_*): Adapt to index->name. (mark_var_expanding_copy_visitor): New class to process $argN. (mark_derived_probe ctor): Call it. (mark_derived_probe::emit_probe_context_vars): Do it. * buildrun.cxx (compile_pass): Add more optional gcc verbosity. Add CFLAGS += -freorder-blocks. * testsuite/buildok/marker.stp: New test.