| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
PR 1295.
* tapsets.cxx (resolve_prologue_endings2): Try another heuristic
for end-of-prologue.
2005-09-26 Frank Ch. Eigler <fche@elastic.org>
PR 1295.
* systemtap.samples/sysopen.*: New test.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Frank Ch. Eigler <fche@elastic.org>
PR 1330.
* tapsets.cxx (dwarf_derived_probe): Allow multiple probe_point
locations per derived_probe.
(dwarf_query): Add probe "flavour" concept, to reuse probe bodies for
identical flavours across wildcards.
(dwarf::emit_registrations, emit_deregistrations, emit_probe_entries):
Reorganize.
* staptree (probe::printsig): Put multiple locations on separate lines.
|
|
|
|
|
| |
* tapsets.cxx (*::emit_probe_entries): Handle busy-count correctly
upon contention.
|
|
|
|
|
|
| |
PR 1260
* tapsets.cxx (dwflpp::resolve_prologue_endings): Correct logic
error triggered by consecutive function-beginning line records.
|
|
|
|
|
|
|
|
|
| |
PR 1260
* tapsets.cxx (func_info::func_info): Initialize fields.
(inline_instance_info::inline_instance_info): Likewise.
(query_inline_instance_info): Add try-catch block.
(query_func_info): Likewise, and fault when missing prologue-end.
(query_dwarf_func): Fault when missing entrypc.
|
|
|
|
|
|
| |
PR 1306
* tapsets.cxx (dwflpp::iterate_over_srcfile_lines): Fix two
off-by-one errors in previous change.
|
|
|
|
|
|
|
|
|
| |
PR 1306
* tapsets.cxx (dwflpp::has_single_line_record): New function.
(dwflpp::iterate_over_srcfile_lines): Throw when user requests
single statement line with multiple records (and provide advice).
(query_cu): Adjust call to match.
(query_srcfile_line): Fix indentation.
|
|
|
|
|
| |
* main.cxx (main): Choose getpid()-based module names.
* tapsets.cxx: Make timer.jiffies' use of task_pt_regs __i386__-only.
|
|
|
|
|
|
|
| |
* configure.ac: Require elfutils 0.115+.
* tapsets.cxx: Restore graydon's PR 1244 code.
* testsuite/buildok/eighteen.stp: Correct typing.
* configure: Regenerated.
|
|
|
|
| |
* tapsets.cxx (emit_probe_entries): Disable fault_handler for now.
|
|
|
|
|
|
|
|
|
| |
PR 1289
* translate.cxx (lex_cast_qstring): Correct "cast" of object
to string containing more than one word.
* tapset.cxx (lex_cast_qstring): Ditto.
(dwarf_derived_module::emit_probe_entries): Emit and use
a generic fault_handler.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1172.
* staptree.h, staptree.cxx: Make all ::print*(), operator<<
functions take const staptree objects.
(literal_string::print): \-prefix double-quotes.
* translate.cxx (emit_common_header): Add context probe_point field.
Switch to atomic_t busy flags.
(emit_module_exit): Use atomic operations for busy flag.
(visit_*): Use lex_cast_qstring for last_stmt strings.
* tapsets.cxx (lex_cast_quoted): \-prefix double-quotes too.
(*::emit_probe_entries): Populate probe_point. Use atomic operations
for busy flag.
* tapset/context.stp (pp): New function.
* stapfuncs.5.in: Document it.
* testsuite/buildok/context_test.stp: Test it.
|
|
|
|
|
|
|
|
| |
PR 1187 prime
* tapset.cxx (literal_stmt_for_local): Don't automgaically copy
target char*'s to systemtap strings.
* tapset/conversions.stp (user_string, kernel_string): New functions.
* stapfuncs.5.in: Document new functions.
|
|
|
|
| |
* tapsets.cxx: Temporarily rolled back graydon's changes.
|
|
|
|
|
|
|
|
|
|
| |
PR systemtap/1244
* testsuite/buildok/eighteen.stp: New test.
* tapsets.cxx (dwflpp::literal_stmt_for_local)
(query_statement, query_inline_instance_info)
(query_func_info, query_srcfile_line, query_cu)
(var_expanding_copy_visitor, visit_target_symbol)
(dwarf_derived_probe): Fix 1244.
|
|
|
|
|
|
|
|
|
| |
PR systemtap/1258
* tapsets.cxx (dwflpp::literal_stmt_for_local):
Support DW_TAG_enumeration_type tag as synonymous with
DW_TAG_base_type.
* loc2c.c (base_byte_size): Likewise.
* testsuite/buildok/seven.stp: Adjust to work on UP kernels.
|
|
|
|
|
| |
* tapsets.cxx (dwflpp::iterate_over_srcfile_lines): Correct segv
reported in PR 1270.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (dwflpp::literal_stmt_for_local): Handle dwarf
pointer-to-1-byte-means-char case (found in PR 1187)
* parse.cxx (parse_symbol): Eliminate use of "." from target
symbol parser, conflicting with string concatenation operator.
* staptree.h (target_symbol::component_type) Eliminate
comp_struct_pointer_member, since . and -> are considered the
same now.
* staptree.cxx (target_symbol::print): Likewise.
* testsuite/buildok/seventeen.stp: Test solution on PR 1191.
* testsuite/buildok/six.stp: Test working portion of PR 1155.
* testsuite/semko/nineteen.stp: Unresolved portion of PR 1155.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR translator/1265
* tapsets.cxx
(func_info::decl_file)
(func_info::decl_line)
(inline_instance_info::decl_file)
(inline_instance_info::decl_line): New fields.
(dwflpp::function_srcfile): Remove.
(dwflpp::function_file): Add.
(dwflpp::function_line): Add.
(dwarf_derived_probe::dwarf_derived_probe): Update.
(query_statement): Pass func, file, line through.
(query_inline_instance_info): Likewise.
(query_func_info): Likewise.
(query_srcfile_line): Query statement lines if
statement_str exists, rather than *_info.
(query_dwarf_inline_instance): Extract file and line.
(query_dwarf_func): Likewise.
(query_cu): Pass empty func, file, line, for address-based
queries.
|
|
|
|
|
|
|
| |
* translate.cxx (visit_target): Make target variable exceptions
more informative.
(literal_stmt_for_local): Improve bad-type exception message.
* translate.cxx (emit_module_init): Include probe point in comments.
|
|
|
|
|
| |
* tapsets.cxx (dwflpp::literal_stmt_for_local): Fetch pointer types,
array types, strings, from target.
|
|
|
|
|
|
| |
* configure.ac: Require elfutils 0.114.
* tapsets.cxx: Brought back graydon's changes.
* configure: Regenerated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (*::emit_probe_entries): Treat NULL and "" last_errors
both as clean early returns, not errors.
* translate.cxx: Revamp last_error handling logic. Remove all
"goto out" paths from expression context.
(visit_statement): Handle last_error exit one nesting level at a time.
(visit_return_statement, visit_functioncall): Set/reset last_error="".
(c_tmpcounter::visit_for_loop): New routine.
(c_unparser::visit_foreach, visit_for_loop): Rewrite to properly
support continue/breaks, non-local exits, (foreach) locks.
(emit_global): Emit lock variable.
(varlock ctor, dtor): Lock/unlock global variable.
(varlock_w, varlock_r): New concrete subclasses. Update all users.
* tapset/builtin_logging.stp (exit): Don't set last_error.
* src/testsuite/buildok/sixteen.stp: New test.
* tapsets.cxx: Temporarily rolled back graydon's changes.
|
|
|
|
| |
* tapsets.cxx: Re-implement dwarf probe-pattern resolution.
|
|
|
|
|
|
|
| |
PR systemtap/1134
* elaborate.h (module_fds): New member in systemtap_session.
* tapsets.cxx (dwarf_derived_probe ctor): Open /sys/module/$MOD/.text
for the duration of a systemtap session, to lock module in memory.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR systemtap/1195, systemtap/1193
* elaborate.cxx (alias_expansion_builder): Set new block token.
* parse.cxx (parse_symbol): Set new target_symbol token.
* runtest.sh: Store more pertinent failure data.
* tapsets.cxx (emit_probe_entries): Rewrite error-handling path.
* translate.cxx (emit_common_header): Goodbye errorcount, hello
last_error & last_stmt.
(c_unparser::visit_statement): New "header" for all other stmts.
(c_assignop, visit_binary_expression): Adapt to last_error.
* tapset/builtin_logging.stp: Adapt to last_error.
2005-08-21 Frank Ch. Eigler <fche@redhat.com>
* arith.c (*): Adapt to last_error context variable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR systemtap/1209
* tapsets.cxx
* elaborate.cxx (derived_probe_builder): Add get_param function.
* elaborate.h: Declare them.
* tapsets.cxx (dwarf_query::get_*_param): Call them.
(timer_derived_probe, timer_builder): New classes.
(register_standard_tapsets): Register timer.jiffies(N) and friend.
* translate.cxx (translate_pass): #include <linux/timers.h>.
* stap.1.in: Document timer.jiffies(N) probe points.
* testsuite/buildok/fourteen.stp: New test.
2005-08-19 Frank Ch. Eigler <fche@elastic.org>
* arith.c (_stp_random_pm): New function.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* loc2c.c (struct location): New member `emit_address'.
(alloc_location): Initialize new member from ORIGIN.
(location_from_address): New argument EMIT_ADDRESS.
Initialize new member.
(translate): Use LOC->emit_address hook to format DW_OP_addr constant.
(location_relative): Die if DW_OP_addr is used.
(default_emit_address): New function.
(c_translate_location): New argument EMIT_ADDRESS, pass it down.
Use default_emit_address if argument is null.
* loc2c.h: Update decl.
* loc2c-test.c (handle_variable): Update caller.
* tapsets.cxx (dwflpp::literal_stmt_for_local): Update caller.
(dwflpp::loc2c_emit_address): New static method.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR systemtap/1197
* loc2c.c (struct location): New members `fail', `fail_arg'.
(alloc_location): New function. Initialize those members.
(new_synthetic_loc, translate): Use that instead of obstack_alloc.
(location_from_address, location_relative): Likewise.
(FAIL): New macro. Use it everywhere in place of `error'.
* loc2c-test.c (fail): New function.
(handle_variable): Pass it to c_translate_location.
* tapsets.cxx (dwflpp::loc2c_error): New static method.
(dwflpp::literal_stmt_for_local): Pass it to to c_translate_location.
|
|
|
|
|
|
|
|
|
| |
* loc2c.c (c_translate_fetch): Take TYPEDIE instead of TYPEATTR.
(c_translate_store): Likewise.
* loc2c.h: Update decls.
* loc2c-test.c (handle_variable): Update callers.
Look up type, resolve typedefs, and check that it's DW_TAG_base_type.
* tapsets.cxx (dwflpp::literal_stmt_for_local): Likewise.
|
|
|
|
|
|
|
|
|
|
| |
PR systemtap/1180
* tapsets.cxx (*): Add more verbose-predicatation to informative
messages. Correct more hex/dec ostream mismatches.
(query_function): Use entry/querypc, not prologue-end, for
function().return and .statement() probe points.
(dwarf_derived_probe ctor): Reorganize function/statement
probe point regeneration.
|
|
|
|
|
|
| |
* tapsets.cxx: Tweak hex/decimal printing for consistency.
(emit_registrations): Remove module-specific code, anticipating
that libelf gives us run-time addresses already.
|
|
|
|
|
| |
* tapsets.cxx (dwflpp::literal_stmt_for_local): Copy code from
loc2c-test to implement target member variable access.
|
|
|
|
|
|
|
| |
* tapsets.cxx
(dwflpp::global_addr_of_line_in_cu): Implement next-line heuristic.
(dwarf_query::get_number_param): Dwarf_Addr variant.
(query_cu): Add line-selecting variant for function iteration.
|
|
|
|
|
|
| |
* tapsets.cxx: Correct hex/decimal misformatting of verbose messages.
* main.cxx: Add formal "-h" and "-V" options.
* stap.1.in: Document them.
|
|
|
|
|
|
|
| |
* tapsets.cxx: Move around "focusing on ..." messages to print
them only for matching functions/modules.
(dwflpp ctor): Also add cu (source file) name to derived
probe point.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* staptree.{cxx,h}
(target_symbol): New struct.
(*_visitor::visit_target_symbol): Support it.
(visitor::active_lvalues)
(visitor::is_active_lvalue)
(visitor::push_active_lvalue)
(visitor::pop_active_lvalue): Support lvalue-detection.
(delete_statement::visit)
(pre_crement::visit)
(post_crement::visit)
(assignment::visit): Push and pop lvalue expressions.
* elaborate.{cxx,h}
(lvalule_aware_traversing_visitor): Remove class.
(no_map_mutation_during_iteration_check)
(mutated_map_collector): Update lvalue logic.
(typeresolution_info::visit_target_symbol): Add, throw error.
* parse.{cxx,h}
(tt2str)
(tok_is)
(parser::expect_*)
(parser::peek_*): New helpers.
(parser::parse_symbol): Rewrite, support target_symbols.
* translate.cxx (c_unparser::visit_target_symbol): Implement.
* tapsets.cxx (var_expanding_copy_visitor): Update lvalue logic,
change visit_symbol to visit_target_symbol.
|
|
|
|
|
|
| |
* tapsets.cxx (query_statement|function|cu|module): Add explicit
nested try/catch, since elfutils iteration seems to block
exception catching.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR translator/1175
* translate.cxx (*): Added unlikely() markers to most emitted error
checks.
(mapvar::get,set): Handle NULL<->"" impedance mismatch.
(itervar::get_key): Ditto. Use base index=1 for keys.
* testsuite/buildok/one.stp: Extend. And it runs with -p5 too.
* stap.1: Document use of ";" statament as mechanism for grammar
ambiguity resolution.
* stp_check.in: Set $prefix.
* systemtap.spec.in: Prereq kernel-devel, kernel-debuginfo,
and not tcl.
* tapsets.cxx: Make slightly less verbose.
* translate.cxx
|
|
|
|
|
| |
* tapsets.cxx (dwflpp): Fix address calculation logic a bit,
and use prologue-end addresses for function probes.
|
|
|
|
|
|
|
|
|
| |
* loc2.c (emit_loc_address): Emit interleaved declaration into
its own nested { } block.
* tapsets.cxx (literal_stmt_for_local): Emit deref_fault block
unconditionally.
* tapset/builtin_hexstring.stp: New builtin.
* testsuite/buildok/six.stp: New test.
|
|
|
|
|
| |
* tapsets.cxx (emit_registrations): Treat module_name="kernel"
as if module_name="".
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* staptree.{cxx,h} (probe_point::component): Add a ctor.
* tapsets.cxx (dwarf_derived_probe): Synthesize concrete
probe_point for matched pattern.
(dwarf_probe_type)
(dwarf_query::add_kernel_probe)
(dwarf_query::add_module_probe): Remove, they were noise.
(dwflpp::module_name_matches): Don't call get_module_dwarf().
|
| |
|
| |
|
|
|
|
|
| |
* tapsets.cxx: Support ".return" option for function probe points.
* testuite/buildok/five.stp: Try it.
|
|
|
|
|
|
|
|
|
| |
* elaborate.cxx (derive_probes, semantic_pass_symbols): Improve
error message specificity.
* translate.cxx (emit_module_init): Compact partial registration
recovery code.
(emit_module_exit): Invert deregistration sequence.
* testsuite/buildok/four.stp: Some module() test case.
|
|
|
|
|
|
|
|
|
|
|
| |
* elaborate.cxx (derive_probes): Print error if results empty.
* tapsets.cxx (dwflpp_assert): Handle positive RCs, which likely
came from errno.
(dwflpp::setup): Improve missing debug-info messages.
* testsuite/semko/sixteen,seventeen.stp: New tests.
* runtest.sh: Save stdout/stderr of FAIL/XPASS test cases.
* Makefile.am (clean-local): Clean up testsuite/.
* Makefile.in, aclocal.m4: Regenerated.
|
|
|
|
|
| |
From Graydon Hoare <graydon@redhat.com:
* tapsets.cxx (var_expanding_copy_visitor): Correct lvalue cases.
|