summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 2005-12-13 Frank Ch. Eigler <fche@redhat.com>fche2005-12-131-0/+1
| | | | | * tapsets.cxx (var_expanding_copy_visitor::visit_target): Transcribe token pointer to synthesized functiondecl.
* 2005-12-12 Josh Stone <joshua.i.stone@intel.com>jistone2005-12-121-37/+48
| | | | | | * tapsets.cxx (profile_derived_probe::*,profile_builder::build): Do kernel version checks at translation time, using the same internal mechanisms as the preprocessor - a la %( kernel_v < "2.6.10" %? ... %: ... %)
* 2005-12-09 Graydon Hoare <graydon@redhat.com>graydon2005-12-101-20/+212
| | | | | | | | | | | | | | | | * elaborate.cxx (alias_expansion_builder::build): Fix comment typo. * tapsets.cxx (symbol_cache): New class. (dwflpp::cache): Add cache. (dwflpp::pattern_limited_cus): New member. (dwflpp::pattern_limited_funcs): New member. (dwflpp::limit_search_to_function_pattern): New method. (dwflpp::iterate_over_cus): Modify to use cached, limited sets. (dwflpp::iterate_over_functions): Likewise. (dwarf_builder::user_dw): New member. (dwarf_builder::kern_dw): New member. (dwarf_builder::~dwarf_builder): Add dtor. (query_module): Call dwflpp::limit_search_to_function_pattern. (dwarf_builder::build): Initialize persistent dwflpp members on demand.
* 2005-12-06 Frank Ch. Eigler <fche@elastic.org>fche2005-12-071-23/+58
| | | | | | | PR 1934. * tapsets.cxx (resolve_prologue_endings2): Add new heuristic for tail-call optimized functions. (query_func_info): Make somewhat less verbose.
* 2005-12-05 Frank Ch. Eigler <fche@elastic.org>fche2005-12-051-0/+1
| | | | * *.cxx: Add <cassert> #include as needed.
* 2005-11-30 Frank Ch. Eigler <fche@redhat.com>fche2005-11-301-6/+126
| | | | | | | | | PR 1276 From Josh Stone <joshua.i.stone@intel.com>: * tapsets.cxx (profile_derived_probe, profile_builder, register_standard_tapsets): Support timer.profile variety. * stapprobes.5.in: Document it. * testsuite/builok/fourteen.stp: Test its buildability.
* 2005-11-25 Frank Ch. Eigler <fche@elastic.org>fche2005-11-251-3/+0
| | | | | | | PR 1336. * tapsets.cxx (translate_final_fetch_or_store): Remove apparently unnecessary check. * testsuite/transok/ten.stp: New test for void* integerification.
* 2005-11-24 Frank Ch. Eigler <fche@redhat.com>fche2005-11-241-4/+4
| | | | | | | PR 1917 * translate.cxx (emit_common_header, emit_module_init, emit_module_exit): Switch context array to per-cpu kmalloc variant. * tapsets (*::emit_probe_entires): Use per_cpu_ptr() for my context.
* 2005-11-21 Roland McGrath <roland@redhat.com>roland2005-11-221-8/+34
| | | | | | | | | | * loc2c.c (c_translate_location): Take Dwarf_Op vector as argument directly, not Dwarf_Attribute.p * loc2c.h: Update decl. * loc2c-test.c (get_location): New function. (handle_variable): Use it. * tapsets.cxx (dwflpp::translate_location): New method. (dwflpp::translate_components, dwflpp::literal_stmt_for_local): Use it.
* 2005-11-21 Frank Ch. Eigler <fche@elastic.org>fche2005-11-211-9/+26
| | | | | | | | | PR 1276 From Josh Stone <joshua.i.stone@intel.com>: * tapsets.cxx (timer_derived_probe, timer_builder, register_standard_tapsets): Support timer.ms() variety. * stapprobes.5.in: Document it. * testsuite/builok/fourteen.stp: Test its buildability.
* 2005-11-18 Martin Hunt <hunt@redhat.com>hunt2005-11-181-5/+5
| | | | | | | | | | | | | | | | | | | | | | | PR 1837 * testsuite/buildko/one.stp: Replace printk. * testsuite/buildok/one.stp: Ditto. * testsuite/buildok/two.stp: Ditto. * testsuite/semko/fifteen.stp: Ditto. * testsuite/semko/fourteen.stp: Ditto. * testsuite/semko/thirteen.stp: Ditto. * testsuite/transok/eight.stp: Ditto. * testsuite/transok/seven.stp: Ditto. * testsuite/transok/six.stp: Ditto. * tapsets.cxx (*::emit_probe_entries): Replace printk() calls with _stp_warn(). * stap.1.in: Replace printk with printf in example. * stapfuncs.5.in: Remove docs for printk and add for print and printf. * tapset/logging.stp (printk): Deleted.
* 2005-11-08 Frank Ch. Eigler <fche@redhat.com>fche2005-11-081-1/+2
| | | | | | * tapsets.cxx (blacklisted_p): Tolerate NULL filename parameter. * src/testsuite/semok/twenty.stp: New test to enumerate everything dwarfly probeable.
* 2005-11-08 Frank Ch. Eigler <fche@redhat.com>fche2005-11-081-1/+4
| | | | | | | * tapsets.cxx (blacklisted_p): Add blacklist for some .return probes to kludge around bug #1345. * tapset/system_calls.stp: Add some %( %? %) conditionals to get closer to using tapset on 2.6.9 kernel.
* 2005-11-07 Frank Ch. Eigler <fche@redhat.com>fche2005-11-071-10/+47
| | | | | | | PR 1828. * tapsets.cxx (blacklisted_p): New function. Add a few blacklist entries. * testsuite/semko/thirtythree.stp: New test.
* 2005-11-04 Frank Ch. Eigler <fche@redhat.com>fche2005-11-041-3/+14
| | | | | | | | | * tapsets.cxx (dwarf_derived_probe::emit_registrations): Add possible kprobe address prechecking logic. Set kretprobes maxactive to zero. * translate.cxx (emit_module_init): Set a more helpful default probe_point value for use in registration errors. Exit properly after registration failure of probe #0.
* 2005-11-04 Roland McGrath <roland@redhat.com>roland2005-11-041-32/+50
| | | | | * tapsets.cxx (add_probe_point): Use dwfl_module_relocation_info to get symbol name when dwfl_module_relocations has the info.
* 2005-11-03 Roland McGrath <roland@redhat.com>roland2005-11-031-2/+2
| | | | | * tapsets.cxx (add_probe_point): Use explicit test with assignment in while condition.
* 2005-11-03 Frank Ch. Eigler <fche@elastic.org>fche2005-11-031-0/+39
| | | | | | | PR 1329. * tapsets.cxx (dwarf_query::add_probe_point): Look up section name containing given address. Skip request if it came from .init.*. * testsuite/semko/thirtytwo.stp: New test.
* 2005-10-31 Roland McGrath <roland@redhat.com>roland2005-10-311-138/+138
| | | | | | | | | | | | | | * configure.ac: Update libdw test to require 0.116 with dwarf_diecu. * configure: Regenerated. * systemtap.spec.in: Update elfutils requirement to 0.116. * loc2c.c: Dwarf_Loc -> Dwarf_Op. (location_from_address): dwarf_addrloclists -> dwarf_getlocation_addr. (c_translate_location): Likewise. (max_fetch_size): Remove fakeo dwarf_diecu macro. * tapsets.cxx (dwflpp): Dwarf_Func -> Dwarf_Die; dwarf_func_name -> dwarf_diename; dwarf_func_entrypc -> dwarf_entrypc; dwarf_func_file, dwarf_func_line -> dwarf_decl_file, dwarf_decl_line.
* IA64 Runtime support patches. With this in placeaskeshav2005-10-281-0/+12
| | | | | | | Systemtap should now be able to build on Ia64. Includes supports for - function probes, return probes, function parameter access and dumping stack backtrace. Added by Anil S Keshavamurthy <Anil.s.keshavamurthy@intel.com>
* 2005-10-18 Frank Ch. Eigler <fche@elastic.org>fche2005-10-181-2/+5
| | | | | | | | PR 1482 cont'd. * translator.cxx (emit_module_init): Set aside a variable for detailed probe point id. * tapsets.cxx (emit_registrations): Use it. (add_probe_point): Correct synthesized probe-point typo.
* 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.