From c888792a27cb132edd772f68e8935c50299d82f6 Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Thu, 17 Dec 1998 17:06:25 +0000 Subject: [PATCH] * gdbtk-cmds.c (gdb_search): Don't mention C++ RTTI and global constructor/destructor symbols. --- gdb/ChangeLog-gdbtk | 5 +++++ gdb/gdbtk-cmds.c | 24 ++++++++++++++++-------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/gdb/ChangeLog-gdbtk b/gdb/ChangeLog-gdbtk index 9a8ae4d615..e4e0201565 100644 --- a/gdb/ChangeLog-gdbtk +++ b/gdb/ChangeLog-gdbtk @@ -1,3 +1,8 @@ +Thu Dec 17 09:00:56 1998 Keith Seitz + + * gdbtk-cmds.c (gdb_search): Don't mention C++ RTTI and + global constructor/destructor symbols. + Tue Dec 15 10:09:31 1998 Andrew Cagney * gdbtk-cmds.c (gdb_disassemble): Fix typo. diff --git a/gdb/gdbtk-cmds.c b/gdb/gdbtk-cmds.c index fad05c5f3f..6053ec89a3 100644 --- a/gdb/gdbtk-cmds.c +++ b/gdb/gdbtk-cmds.c @@ -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)