| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This will iterate over the module and its CUs looking for the type
definition, and then work with loc2c to dereference the pointer.
* loc2c.c (c_translate_argument): Create a dummy location to start
the address computation from a function parameter.
* translate.cxx (base_query, dwarf_query): Move some members from
base_query to dwarf_query, so the former can be more generic. Also
add a constructor using a module string instead of probe parameters.
(dwflpp::query_modules, dwflpp::iterate_over_modules): Use a generic
base_query instead of a dwarf_query.
(dwarf_cast_query): New query to scan the modules and CUs for a
matching type definition, and then produce a code fragment to deref
each component.
(dwarf_cast_expanding_visitor): Tries to replace @casts with a function
call to the result of a dwarf_cast_query.
(dwflpp::declaration_resolve): Search by name instead of by die.
(dwflpp::translate_components): Use the incoming vardie as the first
type die, so we don't assume that attr_mem has a DW_AT_type already.
(dwflpp::literal_stmt_for_pointer): Construct a C fragment that starts
with a pointer argument (THIS->pointer) and dereferences each member
component from there.
(*_derived_probe::register_patterns): Take a session parameter instead
of a match_node, so we can manipulate session-wide data.
(dwarf_derived_probe::register_patterns): Add a session code filter to
expand @casts with a dwarf_cast_expanding_visitor.
|
| | |
| | |
| | |
| | |
| | |
| | | |
* tapsets.cxx (dwarf_var_expanding_visitor::visit_cast_op): While
expanding dwarf probes, provide the current module as a default to
@casts without a module name.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2009-02-12 David Smith <dsmith@redhat.com>
* tapsets.cxx (procfs_derived_probe_group::emit_module_decls):
Moved inclusion of procfs.c here from runtime/transport.c
2009-02-12 David Smith <dsmith@redhat.com>
* transport.c: Moved inclusion of procfs.c to
procfs_derived_probe_group::emit_module_decls() in tapsets.cxx.
|
| |/
| |
| |
| | |
blacklisted files
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This brings a new update_visitor that makes it easier to traverse the
parse tree and modify parts of it as necessary. I wrote this as part of
my in-progress work to allow @cast() expansion, but I was able to apply
it to the dwarf/etc. target variable expanders and to the optimization
stages. I think the resulting code is more predictable and easier to
follow...
Conflicts:
ChangeLog (bumped my commit dates to push dates...)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* tapsets.cxx (var_expanding_copy_visitor): This struct becomes
var_expanding_visitor and inherits from update_visitor instead of
deep_copy_visitor. Each of the probe-type variants of this are also no
longer copiers.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* staptree.h (require, provide): Simplify stack operations with less
pointer magic, and move to be deep_copy_visitor members.
* staptree.h (deep_copy_visitor::deep_copy): Templatize
* staptree.cxx, tapsets.cxx: Refactor require/provide callers
|
| |/
| |
| |
| | |
kernels
|
| |
| |
| |
| | |
non-trap based probes"
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change just inserts 'static' on runtime, tapset, and generated C
functions and globals, so the compiler can do a better job of
optimizing.
My tests with small scripts show ~10% reduction in compile time and ~20%
reduction in module size. Larger scripts may show less benefit, but I
expect purely positive results.
|
| | |
|
| | |
|
|\| |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-12-08 David Smith <dsmith@redhat.com>
RHBZ 474390
* tapsets.cxx (dwflpp::cu_function_caching_callback): Handles NULL
return from dwarf_diename().
(dwflpp::print_locals): Ditto.
(dwflpp::find_variable_and_frame_base): Ditto.
(dwflpp::literal_stmt_for_return): Ditto.
(dwarf_builder::build): Ditto.
|
|
|
|
|
|
| |
This is necessary to detect mismatching debuginfo for user-space
programs without build-id. We don't have run-time version assertions
for user-space binaries.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The field is renamed to _expires starting in 2.6.28-rc1, and it's not
meant to be directly manipulated. Instead hrtimer users are supposed to
use hrtimer_get_expires and hrtimer_set_expires.
|
| |
|
| |
|
| |
|
| |
|
| |
|