diff options
-rw-r--r-- | gdb/ChangeLog-gdbtk | 5 | ||||
-rw-r--r-- | gdb/gdbtk-cmds.c | 24 |
2 files changed, 21 insertions, 8 deletions
diff --git a/gdb/ChangeLog-gdbtk b/gdb/ChangeLog-gdbtk index 9a8ae4d..e4e0201 100644 --- a/gdb/ChangeLog-gdbtk +++ b/gdb/ChangeLog-gdbtk @@ -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. diff --git a/gdb/gdbtk-cmds.c b/gdb/gdbtk-cmds.c index fad05c5..6053ec8 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) |