summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
Commit message (Collapse)AuthorAgeFilesLines
...
* 2005-10-17 Martin Hunt <hunt@redhat.com>hunt2005-10-181-1/+1
| | | | | | PR 1482 * tapsets.cxx (emit_registrations): On failure, don't forget to unregister probe 0;
* 2005-10-17 Frank Ch. Eigler <fche@elastic.org>fche2005-10-181-6/+5
| | | | | | | | | | | | | | | | | | | | PR 1338. * parse.cx (parse_probe): Unconditionally visit parse_probe_point. (parse_probe_point): Accept "*" as component name. * stapprobes.5.in: Document this. * elaborate.cxx (derive_probes): Rewrite. Make top-level function. (match_node::find_and_build): New function to replace (find_builder): Removed. (match_key operator <): Correct one nasty typo. (match_node::bind): Refuse to bind "*" component names. (derived_probe_builder::build): Remove recursion output param. (alias_expandion_builder::build): Recurse to derive_probes instead. * elaborate.h: Corresponding changes. * tapsets.cxx: Ditto. (query_cu): Elide prologue finding for uninteresting CUs. * testsuite/semok/nineteen.stp: New test. * testsuite/semko/twentythree.stp: New test. * testsuite/semko/twentyone/two.stp: Fix -p2.
* 2005-10-17 Graydon Hoare <graydon@redhat.com>graydon2005-10-171-27/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | * testsuite/semko/twentyone.stp: Check function doesn't match inline. * testsuite/semko/twentytwo.stp: Check inline doesn't match function. * testsuite/buildok/six.stp: Change "function" to "inline". * stapprobes.5.in: Describe "inline" probes. * tapsets.cxx (TOK_INLINE): New token "inline". (dwarf_query::has_inline_str) (dwarf_query::has_inline_num) (dwarf_query::inline_str_val) (dwarf_query::inline_num_val): New members. (dwarf_query::dwarf_query): Load new members. (query_dwarf_inline_instance) (query_dwarf_func) (query_cu) (query_module) (dwarf_derived_probe::add_probe_point) (dwarf_builder::build): Use inline-related members where appropriate. (dwarf_derived_probe::register_inline_variants): New method. (dwarf_derived_probe::register_function_and_statement_variants): Call it.
* 2005-10-10 Frank Ch. Eigler <fche@elastic.org>fche2005-10-101-0/+2
| | | | | | * elaborate.cxx (match_node::bind): Improve error message. (register_library_aliases): Catch and verbosify error message. (semantic_pass): Provide a back-up exception catcher.
* 2005-10-04 Graydon Hoare <graydon@redhat.com>graydon2005-10-051-0/+7
| | | | | | | | | PR 1131. * tapsets.cxx (target_variable_flavour_calculating_visitor::visit_target_symbol) (var_expanding_copy_visitor::visit_target_symbol): Require guru mode for writing to target vars. * testsuite/buildok/twenty.stp: Test writing to target vars.
* 2005-10-01 Frank Ch. Eigler <fche@elastic.org>fche2005-10-011-18/+56
| | | | | | | | | * tapsets.cxx (get_module_dwarf): Add "required" parameter, which throws an exception if debuginfo is not found. (focus_on_module_containing_global_address): Tolerate miss. (query_kernel_exists): New function to test for "kernel" module in dwfl_getmodules() result set. (dwarf_builder::build): Call it if appropriate.
* [ChangeLog]graydon2005-10-011-120/+260
| | | | | | | | | | | | | | | | | | | | | | | 2005-09-30 Graydon Hoare <graydon@redhat.com> PR 1131. * tapsets.cxx (dwflpp::find_variable_and_frame_base) (dwflpp::translate_components) (dwflpp::resolve_unqualified_inner_typedie) (dwflpp::translate_final_fetch_or_store): New functions. (dwflpp::literal_stmt_for_local): Factor a bit. (variable_flavour_calculating_visitor::visit_target_symbol): Don't fault on lvalue, just collect an extra char. (var_expanding_copy_visitor::target_symbol_setter_functioncalls): New member. (var_expanding_copy_visitor::visit_assignment): New method. (var_expanding_copy_visitor::visit_target_symbol): Permit lvalues. [runtime/ChangeLog] 2005-09-30 Graydon Hoare <graydon@redhat.com> * loc2c-runtime.h (_put_user_asm): Fix bracket-matching.
* 2005-09-27 Frank Ch. Eigler <fche@elastic.org>fche2005-09-281-3/+4
| | | | | * tapsets.cxx (query_cu_containing_global_address): Tolerate way out of range addresses that result in null cudie pointers.
* 2005-09-27 Frank Ch. Eigler <fche@elastic.org>fche2005-09-271-2/+28
| | | | | | | | PR 1368. * translate.cxx (emit_common_header): Move some MAX* definitions out ... (translate_pass): ... to here. Fix probe_start API impedance mismatch. (emit_module_init, exit): Tolerate registration errors, such as absence of kretprobes support.
* 2005-09-27 Frank Ch. Eigler <fche@elastic.org>fche2005-09-271-8/+10
| | | | | | | | PR 1311. * tapsets.cxx (target_variable_flavour_calculating_visitor:: visit_target_symbol): Print verbose error. (var_expanding_copy_visitor::visit_target_symbol): Throw simple error.
* 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.