summaryrefslogtreecommitdiffstats
path: root/dwflpp.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' of ssh://sourceware.org/git/systemtapJosh Stone2009-06-021-1/+7
|\
| * Add debuginfo-install suggestion for kernel probing.William Cohen2009-06-011-1/+7
| |
* | Cache the last result of dwarf_getscopesJosh Stone2009-06-021-2/+22
| | | | | | | | | | | | | | | | | | | | | | This one function accounted for ~30% of my callgrind profile of "stap -l 'syscall.*'", even though it was only called ~1200 times. We call dwarf_getscopes for each $target variable, with the same parameters within a given probe. Since they're no nicely grouped, it's easy to just cache the most recent call, and the next few calls will be a hit. Overall this cuts the number of calls down to about 300, for an easy speed gain.
* | Move the blacklist functions into dwflppJosh Stone2009-06-011-1/+290
|/ | | | | | | 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.
* Suggest rpms to install using debuginfo-install.William Cohen2009-05-271-0/+4
| | | | | | | | | The patch makes use of the RPM libraries to determine which rpm supplied the executable and from that information suggest a command to install the appropriate debuginfo rpm. This is enabled using the "--with-rpm" option for configure. Can be explicitly disabled with "--without-rpm".
* Privatize many dwflpp membersJosh Stone2009-05-151-3/+3
| | | | | This helps make it more obvious which methods are accessed by external classes, which should help in refactoring.
* Simplify our unordered_map typedefsJosh Stone2009-05-151-5/+0
|
* Break the dwflpp dependence on query_cuJosh Stone2009-05-151-4/+3
|
* Break the dwflpp dependence on query_moduleJosh Stone2009-05-151-7/+0
|
* Merge the dwflpp::query_cu_..._address methodsJosh Stone2009-05-151-20/+7
| | | | | | | | 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.
* Don't shadow dwlfpp::dwfl in loc2c_emit_addressJosh Stone2009-05-151-2/+1
|
* Remove unused dwflpp methodsJosh Stone2009-05-151-39/+0
| | | | | | | | These three methods had no callers, and are thus obsolete: dwflpp::focus_on_module_containing_global_address(Dwarf_Addr a) dwflpp::global_address_to_module(Dwarf_Addr a) dwflpp::cu_name_matches(string pattern)
* Move dfwlpp into its own fileJosh Stone2009-05-121-0/+2159
It's not a terribly clean split, but moving it helps reveals some of the knots that need to be untangled.