This is the mail archive of the
systemtap-cvs@sourceware.org
mailing list for the systemtap project.
[SCM] systemtap: system-wide probe/trace tool branch, master, updated. release-0.9.9-287-g30c6467
- From: jistone at sourceware dot org
- To: systemtap-cvs at sourceware dot org
- Date: 11 Sep 2009 03:55:11 -0000
- Subject: [SCM] systemtap: system-wide probe/trace tool branch, master, updated. release-0.9.9-287-g30c6467
- Reply-to: systemtap at sourceware dot org
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "systemtap: system-wide probe/trace tool".
The branch, master has been updated
via 30c64675b8d77b4dbcd8a5aa6fc90610fef8df00 (commit)
via 729455a739d4755269f20b73d2db231db2a1fdd7 (commit)
via c9efa5c99498ccb3d2f0f87bc373da7dfd1cc067 (commit)
via 9aa8ffcea9980d24cc9c9f13d9dd51e46e6283bf (commit)
from 5e3e8ffc28f765eb4933f8f167158900588aa51a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 30c64675b8d77b4dbcd8a5aa6fc90610fef8df00
Merge: 5e3e8ffc28f765eb4933f8f167158900588aa51a 729455a739d4755269f20b73d2db231db2a1fdd7
Author: Josh Stone <jistone@redhat.com>
Date: Thu Sep 10 20:40:10 2009 -0700
Merge branch 'getscopes'
commit 729455a739d4755269f20b73d2db231db2a1fdd7
Author: Josh Stone <jistone@redhat.com>
Date: Thu Sep 10 17:06:11 2009 -0700
PR10594 cont'd: Use parent die cache for variable lookup
Variable lookup is usually done through the scopes from dwarf_getscopes
at a particular pc. This requires an expensive traversal to find the
inner-most die containing the pc. For cases where that containing die
is known, e.g. at a particular function entry, we can do much better
with our die_parent_cache.
This may also help get more accurate variable scopes in cases where
multiple dies contain a pc and the innermost isn't what we're trying to
probe. For example, an inlined call chain of foo->bar->baz may all have
the same entry pc, but if the probe was on function("bar"), we would
want the variables in bar's scope, not baz's.
* dwflpp.h (struct dwflpp): Remove pc_cached_scopes, num_cached_scopes,
and cached_scopes, as they are now remembered by the caller.
* dwflpp.cxx (dwflpp::getscopes): New - the DIE version uses the parent
cache, and the pc version just defers to dwarf_getscopes.
(dwflpp::print_locals, literal_stmt_for_local): Take a scopes vector.
(dwflpp::find_variable_and_frame_base): Take a scopes vector from the
caller instead of computing it every time.
(dwflpp::dwarf_getscopes_cached): Removed.
* tapsets.cxx (dwarf_var_expanding_visitor::getscopes): New cached
lookup function which gets the scopes from the DIE if possible.
(dwarf_var_expanding_visitor::visit_target_symbol): Call getscopes.
commit c9efa5c99498ccb3d2f0f87bc373da7dfd1cc067
Author: Josh Stone <jistone@redhat.com>
Date: Wed Sep 9 16:13:16 2009 -0700
Simplify deleting all map values
* util.h (delete_map): New templated map deleter.
* dwflpp.cxx (dwflpp::~dwflpp): Use it.
* tapsets.cxx (symbol_table::~symbol_table): Use it.
commit 9aa8ffcea9980d24cc9c9f13d9dd51e46e6283bf
Author: Josh Stone <jistone@redhat.com>
Date: Wed Sep 9 15:45:28 2009 -0700
PR10594: Provide a cached dwarf_getscopes_die
This avoids repeated DIE traversal by caching all parents on the first
call, so future calls are just a simple walk up parent links.
* dwflpp.cxx (dwflpp::getscopes_die): New cached function that mimics
libdw's dwarf_getscopes_die using cached parent links.
(dwflpp::cache_die_parents): New function to build the parent cache.
(dwflpp::~dwflpp): Clean up the parent caches.
(dwflpp::iterate_over_labels): Use the cached getscopes_die.
(dwflpp::find_variable_and_frame_base): Ditto.
* tapsets.cxx (dwarf_derived_probe::saveargs): Ditto.
(uprobe_derived_probe::saveargs): Ditto.
(dwarf_var_expanding_visitor::visit_target_symbol_context): Ditto.
-----------------------------------------------------------------------
Summary of changes:
dwflpp.cxx | 272 ++++++++++++++++++++++++++++++++++++++++++++---------------
dwflpp.h | 25 ++++--
tapsets.cxx | 66 ++++++++++----
util.h | 12 +++
4 files changed, 279 insertions(+), 96 deletions(-)
hooks/post-receive
--
systemtap: system-wide probe/trace tool