summaryrefslogtreecommitdiffstats
path: root/staptree.cxx
diff options
context:
space:
mode:
authorgraydon <graydon>2005-06-29 22:42:23 +0000
committergraydon <graydon>2005-06-29 22:42:23 +0000
commit20c6c071f5dfe6942438d97364e74f424217c94b (patch)
tree28e6a1a2dace1f2143ed16fb80f407082536676e /staptree.cxx
parent05785c11dfdeaf11d98e7d65486a3870d00b5206 (diff)
downloadsystemtap-steved-20c6c071f5dfe6942438d97364e74f424217c94b.tar.gz
systemtap-steved-20c6c071f5dfe6942438d97364e74f424217c94b.tar.xz
systemtap-steved-20c6c071f5dfe6942438d97364e74f424217c94b.zip
2005-06-27 Graydon Hoare <graydon@redhat.com>
* staptree.{h,cxx} (probe_alias): New structure. * parse.{h,cxx} (parser::parse): Parse probes or probe aliases. (parser::parse_probe): Likewise. * tapsets.{h,cxx}: (derived_probe_builder): (match_key): (match_node): (alias_derived_probe): Move from here, * elaborate.{h,cxx}: to here. * elaborate.h (systemtap_session::pattern_root): New member. (register_library_aliases): New function. * tapsets.cxx: Build one dwarf_derived_probe per target address.
Diffstat (limited to 'staptree.cxx')
-rw-r--r--staptree.cxx25
1 files changed, 25 insertions, 0 deletions
diff --git a/staptree.cxx b/staptree.cxx
index f74f9a91..1243df98 100644
--- a/staptree.cxx
+++ b/staptree.cxx
@@ -373,6 +373,12 @@ void stapfile::print (ostream& o)
o << endl;
}
+ for (unsigned i=0; i<aliases.size(); i++)
+ {
+ aliases[i]->print (o);
+ o << endl;
+ }
+
for (unsigned i=0; i<probes.size(); i++)
{
probes[i]->print (o);
@@ -417,6 +423,25 @@ void probe_point::print (ostream& o)
}
}
+probe_alias::probe_alias(std::vector<probe_point*> const & aliases):
+ probe (), alias_names (aliases)
+{
+}
+
+void probe_alias::printsig (ostream& o)
+{
+ for (unsigned i=0; i<alias_names.size(); i++)
+ {
+ o << (i>0 ? " = " : "");
+ alias_names[i]->print (o);
+ }
+ for (unsigned i=0; i<locations.size(); i++)
+ {
+ o << (i>0 ? ", " : "");
+ locations[i]->print (o);
+ }
+}
+
ostream& operator << (ostream& o, probe_point& k)
{