* gdbtk-cmds.c (gdb_search): Don't mention C++ RTTI and
authorKeith Seitz <keiths@cygnus>
Thu, 17 Dec 1998 17:06:25 +0000 (17:06 +0000)
committerKeith Seitz <keiths@cygnus>
Thu, 17 Dec 1998 17:06:25 +0000 (17:06 +0000)
        global constructor/destructor symbols.

gdb/ChangeLog-gdbtk
gdb/gdbtk-cmds.c

index 9a8ae4d615f338ba7a69cb922d58197d6ac988ae..e4e0201565886a6cfd747d9ad64f821831e36385 100644 (file)
@@ -1,3 +1,8 @@
+Thu Dec 17 09:00:56 1998  Keith Seitz  <keiths@cygnus.com>
+
+        * gdbtk-cmds.c (gdb_search): Don't mention C++ RTTI and
+        global constructor/destructor symbols.
+
 Tue Dec 15 10:09:31 1998  Andrew Cagney  <cagney@b1.cygnus.com>
 
        * gdbtk-cmds.c (gdb_disassemble): Fix typo.
index fad05c5f3fac84c06c22e920fc0aa50d1bdd8688..6053ec89a3882392282d17188d9b6cb761bcd113 100644 (file)
@@ -1357,6 +1357,7 @@ gdb_search (clientData, interp, objc, objv)
           result_ptr->flags |= GDBTK_IN_TCL_RESULT;
           return TCL_ERROR;
         }
+    }
 
       switch ((enum switches_opts) index)
         {
@@ -1412,16 +1413,23 @@ gdb_search (clientData, interp, objc, objv)
       if (static_only && p->block != STATIC_BLOCK)
         continue;
 
-      elem = Tcl_NewListObj (0, NULL);
+      /* Strip off some C++ special symbols, like RTTI and global
+         constructors/destructors. */
+      if ((p->symbol != NULL && !STREQN (SYMBOL_NAME (p->symbol), "__tf", 4)
+           && !STREQN (SYMBOL_NAME (p->symbol), "_GLOBAL_", 8))
+          || p->msymbol != NULL)
+        {
+          elem = Tcl_NewListObj (0, NULL);
 
-      if (p->msymbol == NULL)
-        Tcl_ListObjAppendElement (interp, elem, 
-                                  Tcl_NewStringObj (SYMBOL_SOURCE_NAME (p->symbol), -1));
-      else
-        Tcl_ListObjAppendElement (interp, elem,
-                                  Tcl_NewStringObj (SYMBOL_SOURCE_NAME (p->msymbol), -1));
+          if (p->msymbol == NULL)
+            Tcl_ListObjAppendElement (interp, elem, 
+                                      Tcl_NewStringObj (SYMBOL_SOURCE_NAME (p->symbol), -1));
+          else
+            Tcl_ListObjAppendElement (interp, elem,
+                                      Tcl_NewStringObj (SYMBOL_SOURCE_NAME (p->msymbol), -1));
 
-      Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr, elem);
+          Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr, elem);
+        }
     }
   
   if (ss != NULL)