From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10417 invoked by alias); 3 Sep 2009 21:33:20 -0000 Received: (qmail 10340 invoked by uid 9586); 3 Sep 2009 21:33:14 -0000 Date: Thu, 03 Sep 2009 21:33:00 -0000 Message-ID: <20090903213314.10323.qmail@sourceware.org> From: jistone@sourceware.org To: systemtap-cvs@sourceware.org Subject: [SCM] systemtap: system-wide probe/trace tool branch, master, updated. release-0.9.9-237-g06e0b62 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: d0822e28934cd0387c2af4349cf52c52c368c55a X-Git-Newrev: 06e0b6262393b095a33e9cc6e7ab7bc5d4fe9c95 Mailing-List: contact systemtap-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: systemtap-cvs-owner@sourceware.org List-Archive: Reply-To: systemtap@sourceware.org X-SW-Source: 2009-q3/txt/msg00201.txt.bz2 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 06e0b6262393b095a33e9cc6e7ab7bc5d4fe9c95 (commit) via b969d16b2986a491eb37706e09da888d9914a7dd (commit) via 178ac3f6fdef839ef1ca646421e2c436a91ac1fb (commit) via 789448a36f57e53cc6a1878f7637998b0f15652c (commit) via 7fdd3e2c61874abd631de5038d846dffb6f5bc5f (commit) via b74789646bfe59131327716357c8b7c1521fa14a (commit) via 7a1921492e38221e1552b7698f001fa70d0e0e8b (commit) via 64deb08509bf9682e7d3b8141399c5603edb2df2 (commit) via aca66a36681ac7cbf7fcc2eac4dafc83d6559ef9 (commit) from d0822e28934cd0387c2af4349cf52c52c368c55a (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 06e0b6262393b095a33e9cc6e7ab7bc5d4fe9c95 Merge: b969d16b2986a491eb37706e09da888d9914a7dd d0822e28934cd0387c2af4349cf52c52c368c55a Author: Josh Stone Date: Thu Sep 3 14:31:02 2009 -0700 Merge branch 'master' of sourceware.org:/git/systemtap commit b969d16b2986a491eb37706e09da888d9914a7dd Author: Josh Stone Date: Thu Sep 3 12:31:21 2009 -0700 Escape literal '.'s in regular expressions * dwflpp.cxx (dwflpp::build_blacklist): Escape '.'s in filenames. commit 178ac3f6fdef839ef1ca646421e2c436a91ac1fb Author: Josh Stone Date: Thu Sep 3 12:26:37 2009 -0700 Use a regexp for matching blacklist sections We already use regexp for function/file blacklisting, so this just makes the section blacklisting consistent with the rest. * dwflpp.cxx (dwflpp::blacklisted_p): Use regexec instead of section==. (dwflpp::build_blacklist): Build blacklist_section too. commit 789448a36f57e53cc6a1878f7637998b0f15652c Author: Josh Stone Date: Thu Sep 3 12:00:10 2009 -0700 Fetch the blacklist section only when needed We only check blacklisting on kernel probes, so it's a waste to dig up the section name otherwise. * dwflpp.cxx (dwflpp::blacklisted_p): Lookup the section directly. (relocate_address::relocate_address): Don't do blacklisting here. * tapsets.cxx (dwarf_query::add_probe_point): Don't carry the blacklist section directly anymore. commit 7fdd3e2c61874abd631de5038d846dffb6f5bc5f Author: Josh Stone Date: Thu Sep 3 11:32:59 2009 -0700 PR10573: Squash duplicate inline instances In C++, identical functions included in multiple CUs will get merged at link time into a single instance. We need to make sure that inlines within those merged functions are not probed multiple times. * tapsets.cxx (inline_instance_info::operator<): Used for set support. (dwarf_query::handle_query_module): Clear inline_dupes on each module. (query_dwarf_inline_instance): Squash this inline instance if it's already in the inline_dupes set. commit b74789646bfe59131327716357c8b7c1521fa14a Author: Josh Stone Date: Wed Sep 2 19:09:50 2009 -0700 PR10572: Allow duplicate function names in a CU We can't assume that a given function name will only appear once in a CU. In C++, two functions may have the same name in different classes or namespaces, or even in the same scope with overloaded parameters. Even in C, the compiler may generate multiple copies of a single function with different optimizations. We now use a multimap for function names, so we shouldn't miss any. * dwflpp.h (cu_type_cache_t, mod_cu_type_cache_t): New typedef to keep a normal map for the global_alias_cache. (cu_function_cache_t): Use a multimap for function names. * dwflpp.cxx (dwflpp::iterate_over_functions): Walk over the range of exactly-matching functions. * tapsets.cxx (query_dwarf_func): Don't abort after seeing an exact match -- there could be more to come. commit 7a1921492e38221e1552b7698f001fa70d0e0e8b Author: Josh Stone Date: Wed Sep 2 18:40:14 2009 -0700 Delete stuff that dwflpp newed * dwflpp.cxx (dwflpp::~dwflpp): Delete all of the caches. commit 64deb08509bf9682e7d3b8141399c5603edb2df2 Author: Josh Stone Date: Wed Sep 2 16:43:58 2009 -0700 Provide backward-compatible unordered_map/set We were defining our own stap_map with a ::type to let us use typedefs to use the new unordered_map if available, or hash_map otherwise. Since unordered_map is the future direction, I'm changing our code to use that directly. The backward-compatible version is a #define to hash_map, which has a compatible interface. While I'm at it, let's also define unordered_multimap, unordered_set, and unordered_multiset. * unordered.h: New. * dwflpp.h (stap_map): Removed. (cache typedefs): Use the unordered name now. commit aca66a36681ac7cbf7fcc2eac4dafc83d6559ef9 Author: Josh Stone Date: Wed Sep 2 16:14:08 2009 -0700 Unify lex_cast* and avoid string copies We always use lex_cast either to string or from string, so I made that explicit, and got rid of some string copies in the process. There was also stringify(), which was redundant to lex_cast. We also always used lex_cast_hex to string, so that's now hard-coded and again eliminated a string copy. For lex_cast_qstring, there's no need to write the streamify the input, so a specialization now operates directly on the input. Hopefully this is a bit cleaner, and I do measure it to be a little faster on scripts with many probes. ----------------------------------------------------------------------- Summary of changes: buildrun.cxx | 10 ++-- dwflpp.cxx | 130 +++++++++++++++++++++++++++++---------------------- dwflpp.h | 43 +++++++---------- elaborate.cxx | 6 +- main.cxx | 4 +- parse.cxx | 5 +- staptree.cxx | 2 +- tapset-mark.cxx | 12 ++-- tapset-perfmon.cxx | 6 +- tapset-procfs.cxx | 2 +- tapset-timers.cxx | 4 +- tapset-utrace.cxx | 6 +- tapsets.cxx | 65 ++++++++++++++++---------- translate.cxx | 36 +++++++------- unordered.h | 56 ++++++++++++++++++++++ util.h | 68 ++++++++++++++------------- 16 files changed, 270 insertions(+), 185 deletions(-) create mode 100644 unordered.h hooks/post-receive -- systemtap: system-wide probe/trace tool