| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* tapsets.cxx (procfs_builder::build): Validate procfs path.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
* translate.cxx (c_unparser::emit_common_header): Added 'data'
variable to context structure to support procfs probes.
* tapsets.cxx: Improved procfs probe handling.
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* tapsets.cxx, session.h, elaborate.cxx: Start of procfs
interaction support. PR 1154.
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Patch from Quentin Barnes.
* tapsets.cxx (query_module): Add support for arm.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* tapsets.cxx (common_probe_entryfn_epilogue): Increment
error_count when overload processing kicks in.
|
|
|
|
|
| |
* tapsets.cxx (die_entrypc): Expand search algorithm to
check for "aranges", as sometimes occurs for inlined functions.
|
|
|
|
|
|
| |
GCC 4.3 compatibility patches from Debian.
* buildrun.cxx, hash.cxx, tapsets.cxx, translate.cxx: #include a few
more C++ headers.
|
|
|
|
|
|
| |
PR 3261.
* tapsets.cxx (query_module): Reject elfutils module "kernel"
unless kernel.* probe point used.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (query_dwarf_func): Skip non-inlined functions
for .function().inline case.
2007-04-02 Frank Ch. Eigler <fche@elastic.org>
* socket-trace.stp, small_demos/prof.stp, top.stp: Adapt to
.inline -> .function change.
* semko/twentyone.stp: Ditto.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1570
* NEWS: Document probe handler language change re. inline functions.
* stapprobes.5.in: Likewise.
* tapsets.cxx: Many changes to simplify caches and implement new
handling of inline functions, removed of stubs for future probes.
* elaborate.cxx (derived_probe printsig_nested): New function.
* elaborate.h: Declare it.
* main.cxx (usage): Clarify "-r" meaning.
(main): Tweak related "-p 4" message.
2007-03-30 Frank Ch. Eigler <fche@elastic.org>
PR 1570.
* memory.stp, scheduler.stp, signal.stp, LKET/signal.stp: Adapt
to .inline -> .function change.
2007-03-30 Frank Ch. Eigler <fche@elastic.org>
PR 1570
* */*.stp: Adapt to .inline -> .function change.
* lib/stap_run.exp, stap_run2.exp, stap_run_binary.exp: Shorten
pass/fail dejagnu log lines.
* systemtap.syscall/sys.stp, test.tcl: Make slightly more
compatible and failure more verbose.
|
|
|
|
|
| |
* tapsets.cxx (dwarf_derived_probe emit_module_init): Correct handling
of kprobe registration errors in the middle of a sequence.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 2341 (partial fix)
* elaborate.h (struct derived_probe): Added needs_global_locks()
member function. Unless overridden, will return true indicating
that this probe needs locks around global variable references.
* tapsets.cxx (struct be_derived_probe): Added override of default
needs_global_locks() returning false. begin/end probes don't
need locks around global variables, since they aren't run
concurrently with any other probes.
* translate.cxx (c_unparser::emit_common_header): Updated
probe_contents logic to match the logic in emit_probe.
(c_unparser::emit_probe): Added whether the probe needs global
variable locks to the probe string (that helps eliminate duplicate
probes). The generated C changes based on whether or not global
variable locks are needed, but the pass 2 output doesn't differ
between a probe that needs global variable locks and one that
doesn't. If the probe doesn't need global variable locks, doesn't
output them.
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (dwflpp::translate_final_fetch_or_store): Improved
error messages for invalid types.
* elaborate.cxx (typeresolution_info::invalid): Improved the error
message for invalid operators.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 4224.
* staptree.h (probe): Add privileged field.
* elaborate.cxx, parse.cxx: Pass privileged flag to probes.
* tapsets.cxx (dwarf_query): Add has_absolute field.
(dwarf_derived_probe ctor): Tolerate it.
(register_patterns): Expose it.
(dwarf_builder::build): Implement it with no dwfl whatsoever.
* NEWS: Document kernel.statement().absolute.
* stapprobes.5.in: Ditto.
2007-03-22 Frank Ch. Eigler <fche@elastic.org>
PR 4224.
* systemtap.base/probefunc.exp: Use kernel.statement().absolute
instead with grep-found schedule_tick address.
* semko/thirtyseven.stp, thirtyeight.stp: New tests.
* buildok/twentyeight.stp: New test.
2007-03-22 Frank Ch. Eigler <fche@elastic.org>
* sym.c (_stp_module_relocate): Tolerate empty section string.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 4146
* tapsets.cxx (common_probe_entryfn_prologue): Added
'interruptible' parameter. If a probe is interruptible,
interrupts are not disabled while the probe executes. Preemption
is disabled however. Interruptible parameter defaults to false.
(common_probe_entryfn_epilogue): Ditto.
(be_derived_probe_group::emit_module_decl): Uses new
'interruptible' parameter to mark begin/end probes as
interruptible.
(probe_derived_probe_group::emit_module): Initialize
'actionremaining' with MAXACTION instead of initializing
'actioncount' with 0.
* translate.cxx (emit_common_header): Renamed 'actioncount' to
'actionremaining'. Turned logic around to initialize
actionremaining to MAXACTION or MAXACTION_INTERRUPTIBLE then
decrement it as actions occur.
(translate_pass): Added MAXACTION_INTERRUPTIBLE initialization.
* translate.h: Removed outdated comment portion.
* stap.1.in: Documented MAXACTION_INTERRUPTIBLE.
* NEWS: Added note about begin/end probes being run with
interrupts enabled.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 4224.
* tapsets.cxx (add_probe_point): Make kernel implicitly relocated
relative to the _stext symbol.
(dwarf_derived_probe ctor, emit_module_decls): Cooperate.
(lookup_symbol_address): New function.
(dwarf_builder::build): Call it thrice.
(in_kprobes_function): Simplify.
* session.h (systemtap_session): Rename cached symbol addresses.
* translate.cxx, elaborate.cxx: Corresponding tweaks.
2007-03-20 Frank Ch. Eigler <fche@elastic.org>
PR 4224.
* sym.c (_stp_module_relocate): Support kernel relocations.
2007-03-20 Frank Ch. Eigler <fche@elastic.org>
* symbols.c (_stp_do_symbols): Add cautionary blurb for important
setup of _stp_modules[0]->text.
|
|
|
|
|
|
|
|
|
|
| |
PR 4146 (partial fix)
* tapsets.cxx (all_session_groups): Added note about stating that
begin probes should be registered (actually run) first and end
probes should be unregistered (run) last.
* translate.cxx (c_unparser::emit_module_exit): Process probe
group vector in reverse order so that probe groups will get
unregistered in the reverse order that they were registered.
|
|
|
|
|
|
|
|
|
|
|
| |
* buildrun.cxx (compile_pass): Emit kbuild-time autoconf widgets
to customize runtime or translator C code to actual kernel rather
than kernel version string. Thanks to FC 2.6."20" for the nudge.
* tapsets.cxx (hrtimer*emit_module): First client: HRTIMER_{MODE_}REL.
2007-03-19 Frank Ch. Eigler <fche@elastic.org>
* autoconf-hrtimer-rel.c: New file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 3545.
* tapsets.cxx (common_probe_entryfn_prologue): Added
'overload_processing' parameter, which defaults to true. If
overload_processing is set to false, doesn't output the
STP_OVERLOAD code.
(common_probe_entryfn_epilogue): Ditto.
(be_derived_probe_group::emit_module_decl): Set
overload_processing to false in calls to
common_probe_entryfn_prologue and common_probe_entryfn_epilogue
since begin/end probes shouldn't overload the system.
* translate.cxx (c_unparser::emit_common_header): Emit
STP_OVERLOAD global variables.
(translate_pass): Emit STP_OVERLOAD defines.
|
|
|
|
|
|
| |
PR 4166.
* tapsets.cxx (translate_components): Throw an exception rather
then suffer an assertion failure for $ptr[index] expressions.
|
|
|
|
|
|
| |
* tapsets.cxx (dwflpp setup): Print "missing kernel debuginfo"
message consistently for, er, missing kernel debuginfo.
(query_kernel_exists): Zapped.
|
|
|
|
|
|
|
|
| |
* elaborate.h (match_node, derived_probe_builder): Add
build_no_more member function.
* elaborate.cxx (semantic_pass_symbols): Call it.
* tapsets.cxx (dwarf_builder): Implement it by releasing dwflpp
instance after pass 2, freeing mucho memory.
|
|
|
|
|
|
|
|
| |
PR 4096
* tapsets.cxx (hrtimer_derived_probe_group::emit_module_decls):
Adapt the function signature for changes in 2.6.21.
(hrtimer_derived_probe_group::emit_module_init): Fix the enum name
for 2.6.21 as well.
|
|
|
|
|
|
|
|
|
| |
PR 4078 and more, including patch from
Eugeniy Meshcheryakov <eugen@debian.org>:
* Makefile.am (AM_CXXFLAGS, AM_CFLAGS): Add -Wextra -Wall -Werror
consistently.
* Makefile.in: Regenerated.
(*): Many minor warning fixes.
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 3625.
* tapsets.cxx (dwflpp::print_locals): New function to print all
the variables/parameters of a function.
(dwflpp::find_variable_and_frame_base): Calls print_locals() when
target variable can't be found.
(dwflpp::print_members): New function to print all the members of
a union/structure.
(dwflpp::translate_components) Calls print_members() when
union/structure member target variable reference can't be found.
|
|
|
|
|
| |
* tapsets.cxx (emit_module_decls): Assert CONFIG_KPROBES,
as suggested by Andreas Kostyrka <andreas@kostyrka.org>.
|
|
|
|
| |
* tapsets.cxx (query_statement): Tolerate null file name string.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 3965
* configure.ac: Add --enable-prologue option.
* configure, config.in: Regenerated.
* session.h (prologue_searching): New field.
* main.cxx (main): Parse new "-P" option. Initialize based on
autoconf flag.
* stap.1.in, NEWS: Document it.
* hash.cxx (find_hash): Include it in computation.
* tapsets.cxx (query_func_info, query_cu): Respect it.
2007-02-09 Frank Ch. Eigler <fche@elastic.org>
* systemtap.base/prologue.*: New test case.
|
|
|
|
| |
* tapsets.cxx (loc2c_error): Correct vasprintf ignored-rc warning.
|
|
|
|
|
|
|
|
| |
* tapsets.cxx
(dwarf_var_expanding_copy_visitor::visit_target_symbol): Since
array behavior has changed (setting to 0 no longer deletes the
array element), we delete the internal counter array element when
providing target variable access in return probes.
|
|
|
|
|
|
|
| |
* tapsets.cxx (*group:emit_module_init): flush stdout less for timing
mode. Also, Set probe_point variable ...
* translate.cxx (emit_module_init): ... so on registration failure, a
usable error message can be generated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 3523.
* tapsets.cxx (common_probe_entryfn_prologue,epilogue): Restore
support for -t (benchmarking) mode.
* translate.cxx (emit_common_header,emit_module_init):Ditto.
(emit_module_exit,emit_probe): Ditto, with most meat here.
2006-12-29 Frank Ch. Eigler <fche@redhat.com>
PR 3523.
* buildok/fourteen.stp, fourteen-plus.stp: Tweak & add a test.
* systemtap.base/bench.stp: Work around randomized-ordered probes.
* systemtap.base/bench.exp: Tighten output requirements.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
* main.cxx (main): Print version strings if verbose >=2 .
* tapsets.cxx (common_probe_entryfn_prologue): Decorate an
emitted local with __restrict__.
|
|
|
|
|
|
|
|
|
| |
* 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).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|