]> sourceware.org Git - systemtap.git/commitdiff
Fill in @cast default module from SDT
authorJosh Stone <jistone@redhat.com>
Fri, 16 Sep 2011 22:59:45 +0000 (15:59 -0700)
committerJosh Stone <jistone@redhat.com>
Sat, 17 Sep 2011 00:01:35 +0000 (17:01 -0700)
If a @cast in SDT context does not have a specified source for type
info, then we should infer it as the SDT's module, as we do for normal
DWARF-based probes.

* tapsets.cxx (sdt_uprobe_var_expanding_visitor::visit_cast_op): If the
  @cast module isn't already set, use the SDT module.
  (sdt_kprobe_var_expanding_visitor::visit_cast_op): Ditto.

tapsets.cxx

index 398ce34ca5e7863f5c519875d1b491fd2ed01cd1..08c47913b7ac1734f2ff9a1b00529875a3fd675c 100644 (file)
@@ -4929,6 +4929,7 @@ struct sdt_kprobe_var_expanding_visitor: public var_expanding_visitor
   vector<string> arg_tokens;
 
   void visit_target_symbol (target_symbol* e);
+  void visit_cast_op (cast_op* e);
 };
 
 
@@ -5103,6 +5104,7 @@ struct sdt_uprobe_var_expanding_visitor: public var_expanding_visitor
   void visit_target_symbol (target_symbol* e);
   void visit_target_symbol_arg (target_symbol* e);
   void visit_target_symbol_context (target_symbol* e);
+  void visit_cast_op (cast_op* e);
 };
 
 
@@ -5498,6 +5500,17 @@ sdt_uprobe_var_expanding_visitor::visit_target_symbol (target_symbol* e)
 }
 
 
+void
+sdt_uprobe_var_expanding_visitor::visit_cast_op (cast_op* e)
+{
+  // Fill in our current module context if needed
+  if (e->module.empty())
+    e->module = process_name;
+
+  var_expanding_visitor::visit_cast_op(e);
+}
+
+
 void
 sdt_kprobe_var_expanding_visitor::visit_target_symbol (target_symbol *e)
 {
@@ -5604,6 +5617,17 @@ sdt_kprobe_var_expanding_visitor::visit_target_symbol (target_symbol *e)
 }
 
 
+void
+sdt_kprobe_var_expanding_visitor::visit_cast_op (cast_op* e)
+{
+  // Fill in our current module context if needed
+  if (e->module.empty())
+    e->module = process_name;
+
+  var_expanding_visitor::visit_cast_op(e);
+}
+
+
 void
 plt_expanding_visitor::visit_target_symbol (target_symbol *e)
 {
This page took 0.037889 seconds and 5 git commands to generate.