summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
Commit message (Collapse)AuthorAgeFilesLines
...
* 2005-09-26 Frank Ch. Eigler <fche@elastic.org>fche2005-09-271-0/+72
| | | | | | | | | | | 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.
* 2005-09-22 Graydon Hoare <graydon@redhat.com>,fche2005-09-221-84/+303
| | | | | | | | | | | | | 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.
* 2005-09-19 Frank Ch. Eigler <fche@redhat.com>fche2005-09-191-0/+3
| | | | | * tapsets.cxx (*::emit_probe_entries): Handle busy-count correctly upon contention.
* 2005-09-14 Graydon Hoare <graydon@redhat.com>graydon2005-09-151-6/+3
| | | | | | PR 1260 * tapsets.cxx (dwflpp::resolve_prologue_endings): Correct logic error triggered by consecutive function-beginning line records.
* 2005-09-13 Graydon Hoare <graydon@redhat.com>graydon2005-09-141-23/+55
| | | | | | | | | 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.
* 2005-09-12 Graydon Hoare <graydon@redhat.com>graydon2005-09-131-2/+2
| | | | | | PR 1306 * tapsets.cxx (dwflpp::iterate_over_srcfile_lines): Fix two off-by-one errors in previous change.
* 2005-09-12 Graydon Hoare <graydon@redhat.com>graydon2005-09-131-16/+74
| | | | | | | | | 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.
* 2005-09-07 Frank Ch. Eigler <fche@redhat.com>fche2005-09-071-4/+6
| | | | | * main.cxx (main): Choose getpid()-based module names. * tapsets.cxx: Make timer.jiffies' use of task_pt_regs __i386__-only.
* 2005-09-06 Frank Ch. Eigler <fche@elastic.org>fche2005-09-061-21/+41
| | | | | | | * configure.ac: Require elfutils 0.115+. * tapsets.cxx: Restore graydon's PR 1244 code. * testsuite/buildok/eighteen.stp: Correct typing. * configure: Regenerated.
* 2005-09-06 Frank Ch. Eigler <fche@redhat.com>fche2005-09-061-2/+4
| | | | * tapsets.cxx (emit_probe_entries): Disable fault_handler for now.
* 2005-09-05 Frank Ch. Eigler <fche@elastic.org>fche2005-09-061-5/+31
| | | | | | | | | 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.
* 2005-09-05 Frank Ch. Eigler <fche@elastic.org>fche2005-09-051-44/+67
| | | | | | | | | | | | | | | | | 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.
* 2005-09-03 Frank Ch. Eigler <fche@elastic.org>fche2005-09-031-29/+15
| | | | | | | | 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.
* 2005-09-02 Frank Ch. Eigler <fche@elastic.org>fche2005-09-021-41/+21
| | | | * tapsets.cxx: Temporarily rolled back graydon's changes.
* 2005-09-01 Graydon Hoare <graydon@redhat.com>graydon2005-09-021-21/+41
| | | | | | | | | | 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.
* 2005-08-31 Graydon Hoare <graydon@redhat.com>graydon2005-09-011-0/+1
| | | | | | | | | 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.
* 2005-08-31 Graydon Hoare <graydon@redhat.com>graydon2005-09-011-5/+13
| | | | | * tapsets.cxx (dwflpp::iterate_over_srcfile_lines): Correct segv reported in PR 1270.
* 2005-08-30 Graydon Hoare <graydon@redhat.com>graydon2005-08-311-1/+7
| | | | | | | | | | | | | | * 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.
* 2005-08-29 Graydon Hoare <graydon@redhat.com>graydon2005-08-301-41/+61
| | | | | | | | | | | | | | | | | | | | | | 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.
* 2005-08-28 Frank Ch. Eigler <fche@redhat.com>fche2005-08-281-7/+16
| | | | | | | * 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.
* 2005-08-24 Graydon Hoare <graydon@redhat.com>graydon2005-08-251-8/+95
| | | | | * tapsets.cxx (dwflpp::literal_stmt_for_local): Fetch pointer types, array types, strings, from target.
* 2005-08-24 Frank Ch. Eigler <fche@elastic.org>fche2005-08-251-298/+466
| | | | | | * configure.ac: Require elfutils 0.114. * tapsets.cxx: Brought back graydon's changes. * configure: Regenerated.
* 2005-08-24 Frank Ch. Eigler <fche@elastic.org>fche2005-08-241-484/+308
| | | | | | | | | | | | | | | | | | | * 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.
* 2005-08-23 Graydon Hoare <graydon@redhat.com>graydon2005-08-231-298/+466
| | | | * tapsets.cxx: Re-implement dwarf probe-pattern resolution.
* 2005-08-22 Frank Ch. Eigler <fche@elastic.org>fche2005-08-221-0/+17
| | | | | | | 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.
* 2005-08-21 Frank Ch. Eigler <fche@redhat.com>fche2005-08-211-29/+18
| | | | | | | | | | | | | | | | | 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.
* 2005-08-19 Frank Ch. Eigler <fche@elastic.org>fche2005-08-191-37/+147
| | | | | | | | | | | | | | | | | 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.
* 2005-08-18 Roland McGrath <roland@redhat.com>roland2005-08-181-1/+14
| | | | | | | | | | | | | | | | * 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.
* 2005-08-17 Roland McGrath <roland@redhat.com>roland2005-08-181-2/+14
| | | | | | | | | | | | | 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.
* 2005-08-17 Roland McGrath <roland@redhat.com>roland2005-08-181-138/+158
| | | | | | | | | * 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.
* 2005-08-16 Frank Ch. Eigler <fche@elastic.org>fche2005-08-161-55/+113
| | | | | | | | | | 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.
* 2005-08-11 Frank Ch. Eigler <fche@elastic.org>fche2005-08-111-31/+37
| | | | | | * tapsets.cxx: Tweak hex/decimal printing for consistency. (emit_registrations): Remove module-specific code, anticipating that libelf gives us run-time addresses already.
* 2005-08-10 Graydon Hoare <graydon@redhat.com>graydon2005-08-111-4/+110
| | | | | * tapsets.cxx (dwflpp::literal_stmt_for_local): Copy code from loc2c-test to implement target member variable access.
* 2005-08-10 Graydon Hoare <graydon@redhat.com>graydon2005-08-111-24/+70
| | | | | | | * 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.
* 2005-08-10 Frank Ch. Eigler <fche@elastic.org>fche2005-08-101-28/+4
| | | | | | * tapsets.cxx: Correct hex/decimal misformatting of verbose messages. * main.cxx: Add formal "-h" and "-V" options. * stap.1.in: Document them.
* 2005-08-10 Frank Ch. Eigler <fche@elastic.org>fche2005-08-101-7/+32
| | | | | | | * 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.
* 2005-08-09 Graydon Hoare <graydon@redhat.com>graydon2005-08-101-76/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* 2005-08-05 Frank Ch. Eigler <fche@elastic.org>fche2005-08-051-134/+163
| | | | | | * tapsets.cxx (query_statement|function|cu|module): Add explicit nested try/catch, since elfutils iteration seems to block exception catching.
* 2005-08-05 Frank Ch. Eigler <fche@elastic.org>fche2005-08-051-1/+1
| | | | | | | | | | | | | | | | 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
* 2005-08-03 Graydon Hoare <graydon@redhat.com>graydon2005-08-031-91/+198
| | | | | * tapsets.cxx (dwflpp): Fix address calculation logic a bit, and use prologue-end addresses for function probes.
* 2005-08-02 Frank Ch. Eigler <fche@elastic.org>fche2005-08-021-8/+10
| | | | | | | | | * 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.
* 2005-08-02 Frank Ch. Eigler <fche@elastic.org>fche2005-08-021-12/+6
| | | | | * tapsets.cxx (emit_registrations): Treat module_name="kernel" as if module_name="".
* nonefche2005-08-021-0/+1
|
* 2005-08-01 Graydon Hoare <graydon@redhat.com>graydon2005-08-021-46/+49
| | | | | | | | | | * 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().
* typofche2005-08-011-3/+6
|
* typosfche2005-08-011-1/+1
|
* 2005-08-01 Frank Ch. Eigler <fche@elastic.org>fche2005-08-011-25/+57
| | | | | * tapsets.cxx: Support ".return" option for function probe points. * testuite/buildok/five.stp: Try it.
* 2005-08-01 Frank Ch. Eigler <fche@elastic.org>fche2005-08-011-1/+1
| | | | | | | | | * 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.
* 2005-08-01 Frank Ch. Eigler <fche@elastic.org>fche2005-08-011-5/+9
| | | | | | | | | | | * 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.
* 2005-07-29 Frank Ch. Eigler <fche@redhat.com>fche2005-07-291-6/+9
| | | | | From Graydon Hoare <graydon@redhat.com: * tapsets.cxx (var_expanding_copy_visitor): Correct lvalue cases.