]> sourceware.org Git - systemtap.git/commitdiff
2005-08-28 Frank Ch. Eigler <fche@redhat.com>
authorfche <fche>
Sun, 28 Aug 2005 15:21:00 +0000 (15:21 +0000)
committerfche <fche>
Sun, 28 Aug 2005 15:21:00 +0000 (15:21 +0000)
* translate.cxx (visit_target): Make target variable exceptions
more informative.
(literal_stmt_for_local): Improve bad-type exception message.
* translate.cxx (emit_module_init): Include probe point in comments.

ChangeLog
tapsets.cxx
translate.cxx

index 872f83cf65d027177f84061dab1c1f11b15138b1..ac731f4d451c0519ca6fb476192a2dc6001284ac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-08-28  Frank Ch. Eigler  <fche@redhat.com>
+
+       * translate.cxx (visit_target): Make target variable exceptions
+       more informative.
+       (literal_stmt_for_local): Improve bad-type exception message.
+       * translate.cxx (emit_module_init): Include probe point in comments.
+
 2005-08-27  Roland McGrath  <roland@redhat.com>
 
        * loc2c-test.c (print_type): New function.
index b99e570fbcba400b34ab8abc28709c68771b6ad9..632bd38969037b610922939f8b6b5d80972ce89e 100644 (file)
@@ -892,11 +892,11 @@ dwflpp
     string prelude, postlude;
     switch (typetag)
       {
-
       default:
-       throw semantic_error ("target location not a base or pointer type");
+       throw semantic_error ("unsupported type tag "
+                             + lex_cast<string>(typetag));
        break;
-       
+
       case DW_TAG_base_type:
        ty = pe_long;
        c_translate_fetch (&pool, 1, module_bias, die, typedie, &tail,
@@ -1715,10 +1715,19 @@ var_expanding_copy_visitor::visit_target_symbol (target_symbol *e)
   functiondecl *fdecl = new functiondecl;
   embeddedcode *ec = new embeddedcode;
   ec->tok = e->tok;
-  ec->code = q.dw.literal_stmt_for_local(addr,
-                                        e->base_name.substr(1),
-                                        e->components,
-                                        fdecl->type);
+  try
+    {
+      ec->code = q.dw.literal_stmt_for_local(addr,
+                                            e->base_name.substr(1),
+                                            e->components,
+                                            fdecl->type);
+    }
+  catch (const semantic_error& er)
+    {
+      semantic_error er2 (er);
+      er2.tok1 = e->tok;
+      throw er2;
+    }
   fdecl->name = fname;
   fdecl->body = ec;
   q.sess.functions.push_back(fdecl);
index d9d9840df61df0c1c3dd1713472d7d85efdd6c7c..71241d0005c000083694b95d057793b9bae7546b 100644 (file)
@@ -657,6 +657,8 @@ c_unparser::emit_module_init ()
   for (unsigned i=0; i<session->probes.size(); i++)
     {
       o->newline() << "/* register " << i << " */";
+      for (unsigned k=0; k<session->probes[i]->locations.size(); k++)
+       o->newline() << "/* " << *session->probes[i]->locations[k] << " */";
       session->probes[i]->emit_registrations (o, i);
 
       o->newline() << "if (unlikely (rc)) {";
This page took 0.055937 seconds and 5 git commands to generate.