| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
* main.cxx (main): Initialize s.architecture to value as if
from `uname -i`. Specifically, squash i?86 -> i386.
|
|
|
|
|
|
| |
* testsuite/systemtap.base/cache.exp: Rename proc stap_compile to
cache_compile, to prevent conflict with proc stap_compile from
lib/stap_compile.exp.
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (dwarf_var_expanding_visitor::visit_target_symbol_context):
Don't add extra space at end of list, only add space between symbols.
* testsuite/systemtap.base/uprobes.exp: Use more specific expect regex.
* testsuite/systemtap.base/vars.exp: Don't just chop off last char of printf
output string.
|
|
|
|
|
|
|
|
|
|
|
| |
* main.cxx (main): Add 'a:' and 'B:' options.
* session.h (kbuildflags): New place to store -B args.
* testsuite/systemtap.base/cmd_parse.exp: Test them lightly.
* buildrun.cxx (run_make_cmd): Use "--no-print-directory"
rather than ">/dev/null" in kbuild invocations. Pass
'-a' and '-B' flags along.
* hash.cxx (find_script_hash): Add them.
* NEWS, stap.1.in: Mention this.
|
|
|
|
|
|
| |
* testsuite/systemtap.base/sdt_types.c: Initialize char arr_char [], not
with (too small) constant length, to make sure the string is always
null terminated.
|
|
|
|
| |
*dtrace: Don't bother with prefix when invoking mkstemp.
|
|
|
|
| |
* runtime/print.c (_stp_print_kernel_info): Also switch module_core->module_core_rx.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adapts to patches such as:
diff -urNp linux-2.6.29.6/include/linux/module.h linux-2.6.29.6/include/linux/module.h
--- linux-2.6.29.6/include/linux/module.h 2009-07-02 19:41:20.000000000 -0400
+++ linux-2.6.29.6/include/linux/module.h 2009-07-30 17:59:26.175602427 -0400
@@ -278,16 +278,16 @@ struct module
int (*init)(void);
/* If this is non-NULL, vfree after init() returns */
- void *module_init;
+ void *module_init_rx, *module_init_rw;
/* Here is the actual code + data, vfree'd on unload. */
- void *module_core;
+ void *module_core_rx, *module_core_rw;
/* Here are the sizes of the init and core sections */
- unsigned int init_size, core_size;
+ unsigned int init_size_rw, core_size_rw;
/* The size of the executable code in each section. */
- unsigned int init_text_size, core_text_size;
+ unsigned int init_size_rx, core_size_rx;
* runtime/autoconf-grsecurity.c: New test.
* buildrun.cxx: Try it.
* runtime/print.c: Use it.
|
|
|
|
|
| |
* dwarf_wrappers.h, loc2c.c: Define DW_TAG_rvalue_reference_type=0x42
for older elfutils.
|
|
|
|
|
|
|
|
|
|
| |
* dwarf_wrappers.cxx (dwarf_type_name): Name class and reference types.
* dwflpp.cxx (dwflpp::iterate_over_globals): Capture class names.
(dwflpp::print_members): Permit classes, and dig into inheritance.
(dwflpp::find_struct_member): Ditto.
(dwflpp::translate_components): Handle classes and references.
(dwflpp::translate_final_fetch_or_store): Ditto.
* loc2c.c (c_translate_pointer): Treat references as simple pointers.
|
|
|
|
|
|
|
|
| |
number of probes
* tapsets.cxx (uprobe_derived_probe_group::emit_module_decls): Use
geometric mean rather than arithmetic mean. Add a comment to explain
relative harmlessness of exceeding the "minimum" or "maximum" values.
|
|
|
|
|
|
| |
... otherwise the new stuff can get cleaned before use.
* cache.cxx (add_to_cache): Do clean_cache() first, not last.
|
|
|
|
|
|
|
| |
* util.cxx (stap_system): Take extra verbosity value. Standardize
error handling / tracing.
* util.h: Corresponding changes.
* buildrun.cxx, main.cxx, modsign.cxx: Update callers.
|
|
|
|
|
|
|
|
|
|
| |
The previous name made it easy to misread the purpose of this
field. It is only for matching executable names, not for
shared libraries.
* runtime/task_finder.c (task_finder_target): Rename field.
(*): Adjust.
* tapset-itrace.cxx, tapset-utrace.cxx, tapsets.cxx, translate.cxx: Ditto.
|
|
|
|
|
| |
* testsuite/systemtap.base/global_stat.exp: Improved error handling.
* testsuite/systemtap.base/strftime.exp: Ditto.
|
|
|
|
| |
is now using.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is less useful than one would hope. gcc will often emit a label with
a DW_AT_low_pc that is not really in the neighbourhood of where one would
expect it when the label is inlined and gcc can proof the label isn't really
used in the optimized code. dwflpp::iterate_over_labels will now really
iterate recursively through the die, even for dies without a name (like
lexical blocks). This means we should now always find the concrete inlined
label instances that have a real DW_AT_low_pc and so we don't need the trick
to use the line table to get at the actual address.
* dwflpp.cxx (iterate_over_labels): Accept dies without a name. Don't handle
labels without a name or without a lowpc attribute.
* testsuite/systemtap.base/inlinedvars.c (m): Trick gcc into thinking label
is always used.
(call, call2): Activate.
(main): Call call and call2.
* testsuite/systemtap.base/inlinedvars.exp: New result_string.
Test both unoptimized and optimized (inlined) builds.
|
|
|
|
|
| |
* testsuite/systemtap.base/poll_map.exp: Improved error handling.
* testsuite/systemtap.base/postgres.exp: Fixed typo.
|
|
|
|
|
|
|
| |
* runtime/task_finder.c (non-UTRACE): Return 0 for
stap_start_task_finder.
* translate.cxx (emit_module_init): Let vma tracker
specific to utrace.
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* runtime/transport/ring_buffer.c (_stp_ring_buffer_disable_cpu): New
function.
(_stp_ring_buffer_enable_cpu): Ditto.
(_stp_ring_buffer_cpu_disabled): Ditto.
(_stp_ring_buffer_empty_cpu): Only checks online cpus (instead of all
possible cpus).
(_stp_find_next_event): Ditto.
(_stp_ring_buffer_iterator_increment): Calls
_stp_ring_buffer_disable_cpu()/_stp_ring_buffer_enable_cpu() around
ring_buffer_* calls.
(_stp_ring_buffer_consume): Ditto.
(_stp_peek_next_event): Ditto.
(_stp_buffer_iter_finish): New function.
(_stp_buffer_iter_start): Ditto.
(_stp_data_read_trace): Uses
_stp_buffer_iter_start()/_stp_buffer_iter_finish().
(_stp_data_write_reserve): Checks to see if the cpu is disabled (with
_stp_ring_buffer_cpu_disabled() before reserving memory. Uses
_stp_buffer_iter_start()/_stp_buffer_iter_finish().
(_stp_transport_data_fs_init): Initializes buffer iterators.
|
| | |
| | |
| | |
| | | |
* dwflpp.cxx (dwflpp::translate_components): Check for void* deref.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When we list the possible members for an anonymous struct/union, the
user may want to go look at the source for the type. That's hard
without a type name, so we now list the decl file:line for them.
* dwflpp.cxx (dwflpp::translate_components): List file:line for anon.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We commonly do a dwarf_attr_integrate followed by dwarf_formref_die,
with no care for the Dwarf_Attribute, so I captured that idiom in an
inline function.
* dwarf_wrappers.h (dwarf_attr_die): New.
* dwarf_wrappers.cxx (dwarf_type_name): Call dwarf_attr_die.
* dwflpp.cxx (dwflpp::print_members): Ditto.
(dwflpp::find_struct_member): Ditto.
* tapsets.cxx (dwarf_derived_probe::saveargs): Ditto.
(uprobe_derived_probe::saveargs): Ditto.
(resolve_tracepoint_arg_type): Ditto.
(tracepoint_derived_probe::build_args): Ditto.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We should always use the canonical dwarf_diename. The code being
replaced here wasn't even using dwarf_attr_integrate, so it may have
been missing the accessibility of some names.
* dwflpp.cxx (dwflpp::iterate_over_labels): Use dwarf_diename.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* dwarf_wrappers.cxx (dwarf_type_name): Moved here from tapsets.cxx, and
added a variant that returns a string for easier ostreaming.
* dwflpp.cxx (dwflpp::print_members): Use dwarf_type_name for errors.
(dwflpp::find_struct_member): Ditto.
(dwflpp::translate_components): Ditto.
(dwflpp::translate_final_fetch_or_store): Ditto.
(dwflpp::literal_stmt_for_pointer): Ditto.
* tapsets.cxx (dwarf_derived_probe::saveargs): Pass die to
dwarf_type_name by pointer instead of reference.
(uprobe_derived_probe::saveargs): Ditto.
(resolve_tracepoint_arg_type): Ditto.
|
| |/
|/|
| |
| | |
* tapsets.cxx (dwarf_type_name): Handle NULL dwarf_diename.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
We had a bug that the starting call to find_struct_member used the same
memory for the parentdie and the resulting member. If parentdie is a
union, then the first member probably won't have a location, and we
actually assert that it must be a union. Since we wrote the result in
the same memory, we lost the real info about the parent, and so the
assertion failed.
* dwflpp.cxx (dwflpp::translate_components): Use distinct memory for the
parent and resulting member in the call to find_struct_member.
(dwflpp::find_struct_member): Remove the needless parentdie copy.
|
|
|
|
|
| |
marker support as used by postgres. Currently assumes, and
verifies, that postgres is installed in /usr/local
|
|
|
|
|
|
|
| |
* translate.cxx (dump_unwindsyms): Decide based on modname[] not
mainfile[] to emit a vmcb.
* runtime/task_finder.c (non-UTRACE): Include dummy stap_{start,stop}_*
functions.
|
|
|
|
|
| |
* testsuite/systemtap.base/arith.exp: Improved error handling.
* testsuite/systemtap.base/cmd_parse.exp: Ditto.
|
|
|
|
|
| |
* testsuite/systemtap.printf/sharedbuf.exp: Handles failure better and
possible modpost warnings.
|
|
|
|
| |
* testsuite/systemtap.base/sdt_types.stp (int_var): Add \n to printf.
|
|
|
|
|
|
|
|
| |
* elaborate.cxx (match_node::bind): Change ->end to ->ends[] vector.
(find_and_build,build_no_more): Iterate over ends[].
* elaborate.h: Corresponding changes.
* testsuite/semok/thirtyfour.stp: New test.
* NEWS, doc/langref.tex: Note this.
|
| |
|
|
|
|
|
|
| |
* testsuite/systemtap.base/cxxclass.exp: New file.
* testsuite/systemtap.base/cxxclass.stp: Likewise.
* testsuite/systemtap.base/cxxclass.cxx: Likewise.
|
|
|
|
|
|
|
|
| |
PR10533 inlined vars are not always found was fixed which means we
no longer need to prevent inlining of the STAP_PROBE macros.
* includes/sys/sdt.h (STAP_UNINLINE_LABEL): Removed.
(STAP_PROBE[1-9]_): Remove label: and STAP_UNINLINE_LABEL.
|
|
|
|
|
|
|
|
|
|
| |
Partial testcase for PR10533 (inlined vars) and 10537 (inlined labels)
currently we cannot use the full testcase since stap doesn't support
probing multiple instances of inlined labels.
* testsuite/systemtap.base/inlinedvars.exp: New file.
* testsuite/systemtap.base/inlinedvars.stp: Likewise.
* testsuite/systemtap.base/inlinedvars.c: Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dwflpp::find_variable_and_frame_base switched too early to "pyshical view"
of die tree. We need to lookup the var in the "syntactical view" of the die
tree first. Then when we see a DW_TAG_inlined_subroutine while walking the
syntactical die tree as returned by dwarf_getscopes for a given variable
to retrieve the frame base, then we need to switch to walking the physical
die tree where the subroutine is inlined.
* dwflpp.cxx (find_variable_and_frame_base): Don't immediately go to
die_scopes, but lookup var first based on pc. Then switch "die branches"
when searching for frame base and a DW_TAG_inlined_subroutine is
encountered.
|
|
|
|
|
| |
* loc2c-test.c (handle_variable): Set inner to zero after
calling dwarf_getscopes_die(), for loop will increase inner.
|
|
|
|
|
|
|
|
| |
* translate.cxx (emit_common_header, translate_pass): Use new
recursion_info visitor to calculate appropriate MAXNESTING value for
scripts with or without recursion.
* tapsets.cxx (common_probe_entryfn_prologue): Initialize c->nesting = -1.
* stap.1.in: Clarify MAXNESTING value.
|
|
|
|
|
|
|
| |
* tapsets.cxx (tracepoint_derived_probe_group::emit_module_decls): Use
probe_locals to set the tracepoint arguments for the probe.
* testsuite/systemtap.base/tracepoints.exp: Include the arguments in the
pass-4 tracepoint test.
|
|
|
|
|
|
| |
* translate.cxx (emit_common_header): Emit probe locals into
a separate union, not into the locals[] array.
(emit_probe): Adapt.
|
|
|
|
|
| |
* configure.ac: Tweak --with-elfutils nested configure invocation.
* rest of auto* files: regenerated with fedora-11 tools
|
|
|
|
| |
* testsuite/systemtap.base/dtrace.exp: New test.
|
|
|
|
|
|
|
|
|
|
| |
When we see a DW_TAG_inlined_subroutine while walking the syntactical
die tree as returned by dwarf_getscopes for a given variable to retrieve
the frame base, then we need to switch to walking the physical die tree
where the subroutine is inlined.
* loc2c-test.c (handle_variable): Switch "die branches" when searching
for frame base and a DW_TAG_inlined_subroutine is encountered.
|
| |
|
|
|
|
|
| |
* translate.cxx (c_unparser::emit_probe): Unlocks global variables, then
calls _stp_print_flush() (instead of the other way around).
|
|
|
|
|
|
|
|
|
|
| |
Rather than re-attempting a tracepoint header that fails to compile, we
now save an empty file into the cache to indicate "nothing to see here."
See also PR10424.
* tapsets.cxx (tracepoint_builder::get_tracequery_module): Use /dev/null
as the empty result file if make_tracequery fails.
(tracepoint_builder::init_dw): Ignore empty tracequery modules.
|