diff options
author | Keith Seitz <keiths@cygnus> | 1998-12-17 17:06:25 +0000 |
---|---|---|
committer | Keith Seitz <keiths@cygnus> | 1998-12-17 17:06:25 +0000 |
commit | c888792a27cb132edd772f68e8935c50299d82f6 (patch) | |
tree | f72ddbe0673c5ad03700a2155d8020d7cc6445eb /gdb/gdbtk-cmds.c | |
parent | d744bbbbb87f430a5d9e8c66515997e22dd2fa9d (diff) | |
download | binutils-c888792a27cb132edd772f68e8935c50299d82f6.zip binutils-c888792a27cb132edd772f68e8935c50299d82f6.tar.gz binutils-c888792a27cb132edd772f68e8935c50299d82f6.tar.bz2 |
* gdbtk-cmds.c (gdb_search): Don't mention C++ RTTI and
global constructor/destructor symbols.
Diffstat (limited to 'gdb/gdbtk-cmds.c')
-rw-r--r-- | gdb/gdbtk-cmds.c | 24 |
1 files changed, 16 insertions, 8 deletions
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) |