summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
Commit message (Collapse)AuthorAgeFilesLines
...
| * PR10308 Beginning of statement check should provide alternatives.Mark Wielaard2009-06-221-0/+2
| | | | | | | | tapsets.cxx (query_cu): Add suggested address if found to error message.
| * PR10307 beginning of statement check should be overridden in guru mode.Mark Wielaard2009-06-221-1/+5
| | | | | | | | | | | | * tapsets.cxx (query_cu): When in guru mode just issue an warning (if not suppressed) instead of an error when address isn't at the beginning of a statement.
* | Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-06-171-4/+11
|\|
| * Use the expanded value for sdt $$nameJosh Stone2009-06-161-2/+2
| | | | | | | | | | * tapsets.cxx (dwarf_builder::build): pass probe_table.probe_name into the sdt_var_expander instead of .mark_name, so wildcards are resolved.
| * Support -L for kprobe and utrace static user markers.Stan Cox2009-06-161-2/+9
| | | | | | | | tapsets.cxx (dwarf_builder::build): Special case listing mode for kprobe and utrace.
* | Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-06-161-111/+125
|\|
| * Do not emit duplicate probes for kprobe/utrace cases.Stan Cox2009-06-161-0/+8
| | | | | | | | | | * tapsets.cxx (dwarf_builder) Add probes_handled. (dwarf_builder::build): Use probes_handled to not emit duplicates.
| * Add experimental utrace/kprobe sdt supportStan Cox2009-06-151-112/+118
| | | | | | | | | | | | | | | | | | | | | | | | * sdt.h (EXPERIMENTAL_UTRACE_SDT, EXPERIMENTAL_KPROBE_SDT): New probe point macros. * dtrace: Add support for creating type debug info, currently invoked with --types. * tapsets.cxx (probe_table::convert_probe): New. (probe_table::convert_location): New. (dwarf_builder::build): Use it to simplify probe point handling. * sdt.exp (pbtype_flags, pbtype_mssgs): New to also test kprobe and utrace. * static_uprobes.exp (pbtype_flags, pbtype_mssgs): New to also test kprobe and utrace.
* | Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-06-151-11/+17
|\|
| * PR10285. User space PROBE marks aren't found with separate debuginfo.Mark Wielaard2009-06-151-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | The original logic was a little confused. It could end up searching the separate debuginfo twice instead of falling back to the main elf file. Now we explicitly search the main elf file first (where the .probes section really should be) and only then fall back to the separate debuginfo file. * tapsets.cxx (dwarf_builder::probe_table::probe_table): Search main elf file first, then fall back on separate debuginfo file if necessary. * testsuite/systemtap.exelib/exelib.exp: Enable mark.tcl testcase. main elf file or the debuginfo file, but would interpret
| * PR10279: add -DKRETACTIVE=nnnn parameterFrank Ch. Eigler2009-06-131-2/+10
| | | | | | | | | | | | | | * tapsets.cxx (dwarf/kprobe_derived_...::emit_decl/init): Define and use KRETPROBE instead of hard-coded max(...) values. Raise the default 50%. * testsuite/buildok/thirtytwo.stp: New test.
* | Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-06-111-29/+31
|\|
| * Add bounds-checking to sdt $argNJosh Stone2009-06-091-5/+9
| |
| * Remove probe_table's unused location memberJosh Stone2009-06-091-5/+4
| |
| * Remove sdt_var_expanding_visitor's now-unused dwJosh Stone2009-06-091-6/+5
| |
| * Remove the spurious sdt @cast expansionJosh Stone2009-06-091-3/+0
| | | | | | | | | | | | | | The result of sdt's private @cast expansion was not being used, and it's not really needed anyway. The global cast visitor is registered to run as a post-processing step on ALL functions and probes, and so it will pick up and expand sdt's casts too.
| * Simplify process.mark parameter parsingJosh Stone2009-06-091-8/+5
| | | | | | | | | | This just makes it so the parameters only need to be checked and pulled out once.
| * * tapsets.cxx (sdt_var_expanding_visitor::process_name): New.Stan Cox2009-06-091-13/+12
| | | | | | | | | | | | (sdt_var_expanding_visitor::visit_target_symbol): Have @cast use types from a dtrace built object instead of a dtrace supplied header. (dwarf_builder::build): Use it.
| * Fix uninitialized shdr in probe_tableJosh Stone2009-06-091-1/+8
| | | | | | | | | | | | | | | | | | (redo commit 3d022fa9c6bdbca383dfc639d08d65287c708f56) * tapsets.cxx (dwarf_builder::probe_table::probe_table): gcc 4.4 complains that shdr may be used uninitialized. I added returns to ensure that it's ok, but gcc still complains. Set the thing to NULL as well to silence the beast.
* | Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-06-091-118/+118
|\|
| * * tapsets.cxx (probe_table): Make mark_name and sess refs.Stan Cox2009-06-081-115/+115
| | | | | | | | | | | | | | (probe_table::get_next_probe): Dissect using struct probe_table. (sdt_var_expanding_visitor): Use lex_cast. (dwarf_builder::build): Copy probe and location for TOK_MARK cases. Call derive_probes for kprobe and utrace cases.
| * Let query_module abort early for simple matchesJosh Stone2009-06-081-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | query_module was already returning DW_CB_ABORT when a simple match was found, but dwflpp::iterate_over_modules was ignoring that and instead forcing the module loop to restart. The only way out of the loop was with the pending_interrupts flag, which is only for signalled interrupts. Now iterate_over_modules will only attempt the dwfl_getmodules loop once, since that loop will only abort if the CB returns DW_CB_ABORT. Then query_module is also modified to return ABORT if pending_interrupts is flagged. My trusty test, stap -l syscall.*, is nearly 2x faster with this change. Empirically, I found that the kernel object is always the first "module" returned, so the syscall probepoints always gets to short-circuit the loop right away.
* | Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-06-041-149/+422
|\|
| * Fix uninitialized shdr in probe_tableJosh Stone2009-06-031-15/+22
| | | | | | | | | | | | | | * tapsets.cxx (dwarf_builder::probe_table::probe_table): gcc 4.4 complains that shdr may be used uninitialized. I added returns to ensure that it's ok, but gcc still complains. Set the thing to NULL as well to silence the beast.
| * * tapsets.cxx (dwarf_builder::probe_table): New. Derived fromStan Cox2009-06-031-145/+411
| | | | | | | | | | | | dwarf_builder::build to handle the .probes section (sdt_var_expanding_visitor): New. Expand static probe $argN. (dwarf_builder::build): Use probe_table. Add kprobe and utrace probe types.
* | Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-06-021-320/+4
|\|
| * Move the blacklist functions into dwflppJosh Stone2009-06-011-320/+4
| | | | | | | | | | | | | | For a call like "stap -l 'syscall.*'", I found that ~10% of the time was spent compiling the blacklist regexps over again for each probe point. By moving this functionality into the kernel dwflpp instance, we can reuse the regexps and get an easy speed boost.
* | Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-05-251-11/+20
|\|
| * Fix another kernel/kprobe.function conflictJosh Stone2009-05-221-7/+7
| | | | | | | | | | | | | | | | | | | | Both kernel.function and kprobe.function were defining a global array stap_unreg_kprobes to use in bulk kprobes unregistration. The compiler allowed the duplicate definition as long as they were the same size, as it was when exercised in buildok/thirtyone. kprobe.function now uses a separate stap_unreg_kprobes2, and the testcase is modified to produce an imbalanced number of probes.
| * PR10190: Suppress warnings for optional kprobesJosh Stone2009-05-221-4/+13
| | | | | | | | | | | | When a kernel.function or kprobe.function fails in registration, we usually print a WARNING and move on. With this patch, kprobes that have the optional '?' flag will not print any WARNING.
* | Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-05-191-2316/+105
|\|
| * Make all tapsets' TOK_FOO constantJosh Stone2009-05-151-14/+14
| |
| * Merge branch 'tapsets-cleanup'Josh Stone2009-05-151-2300/+73
| |\
| | * Break the dwflpp dependence on query_cuJosh Stone2009-05-151-2/+6
| | |
| | * Break the dwflpp dependence on query_moduleJosh Stone2009-05-151-5/+5
| | |
| | * Merge the dwflpp::query_cu_..._address methodsJosh Stone2009-05-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The method query_cu_containing_global_address was only called by query_cu_containing_module_address, and the latter was just doing a simple argument transform. They are now merged into a single method, query_cu_containing_address. The function module_address_to_global is also merged here at its only call site.
| | * Move dfwlpp into its own fileJosh Stone2009-05-121-2236/+31
| | | | | | | | | | | | | | | It's not a terribly clean split, but moving it helps reveals some of the knots that need to be untangled.
| | * Consolidate dwflpp setupJosh Stone2009-05-111-67/+41
| | |
| * | [tracepoints] ternary is nicer for arg formatJosh Stone2009-05-141-5/+1
| | |
| * | [tracepoints] Print pointer arguments with %pJosh Stone2009-05-141-1/+5
| | | | | | | | | | | | | | | | | | We know the full type of every tracepoint argument, so for those that are pointers, print $$vars/$$parms using "%p". The integer-type arguments continue to use the generic "%#x".
| * | PR10139 Mark .probes section SHF_ALLOC.Mark Wielaard2009-05-141-1/+17
| |/ | | | | | | | | | | * includes/sys/sdt.h (STAP_PROBE_DATA_): Mark .probes section SHF_ALLOC. * tapsets.cxx (dwarf_builder::build): Search in either dwarf or main elf file for .probes section.
* | Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-05-111-4117/+208
|\| | | | | | | | | | | Conflicts: tapsets.cxx
| * Get .probes section through dwarf debuginfo file if necessary.Mark Wielaard2009-05-101-1/+39
| | | | | | | | | | | | * tapsets.cxx (dwarf_builder::build): Add some comments, verbose log messages and get Elf through dwarf_getelf if it exists before searching for .probes section.
| * Allow @cast failures to get optimized awayJosh Stone2009-05-081-17/+13
| | | | | | | | | | | | We have the saved_conversion_error field, but I wasn't using it. Now @cast errors are saved in that field, so they're only seen if the optimizer doesn't remove the @cast.
| * PR10054: Unify the translate_components errorsJosh Stone2009-05-081-39/+12
| | | | | | | | | | | | | | Since translate_components is the one that knows the details of its failures, it makes more sense to let it throw its own errors, instead of relying on each caller to do it. The function now always either returns successfully or throws an error.
| * Refactor anonymous lookups in translate_componentsJosh Stone2009-05-081-113/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous code recursed the entirety of translate_components, and it seemed to be restarting the components list every time, so it would only work if the anonymous portion was the first component. Even then, examining the code output by semok/thirtythree revealed that it wasn't fully translating the locations when multiple anonymous pieces were involved. Instead, it now recurses in a separate function, find_struct_member, which does just enough to find the member die and return. It also builds a vector of the locations passed through, so translate_components can output code for the full chain of anonymity. The generated code for semok/thirtythree's $page->mapping now appears to match the offsets from my manual inspection of struct page. I also added a test for $page->first_page->mapping, which works now but would segfault the old code.
| * Separate the utrace tapsetJosh Stone2009-05-071-1048/+1
| |
| * Separate task_finder and the itrace tapsetJosh Stone2009-05-071-385/+4
| |
| * Separate the kernel.mark tapsetJosh Stone2009-05-071-708/+1
| |
| * Separate the permon tapsetJosh Stone2009-05-071-436/+1
| |