home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: gnu.gdb.bug
- Path: sparky!uunet!darwin.sura.net!mips!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!twinsun.COM!eggert
- From: eggert@twinsun.COM (Paul Eggert)
- Subject: GDB 4.6 is slower than molasses on large C++ programs
- Message-ID: <9207280221.AA28594@farside.twinsun.com>
- Sender: gnulists@ai.mit.edu
- Organization: GNUs Not Usenet
- Distribution: gnu
- Date: Tue, 28 Jul 1992 02:21:32 GMT
- Approved: bug-gdb@prep.ai.mit.edu
- Lines: 54
-
- GDB 4.6 is very slow when debugging large C++ problems (sparc, SunOS 4.1.2,
- with GCC 2.2.2). Most of the problems seem to be related to lookup_symbol's
- disconcerting habit of sequentially demangling every symbol in the program
- whenever it can't look something up. Perhaps this behavior could be switched
- off -- normally one doesn't want GDB to pause for 30 seconds simply to tell
- you that you misspelled a variable.
-
- Here's one fix that helped somewhat. GDB internally converts expressions like
- `this->f' to `$this->f'; but the `$' causes it to go through its painfully
- slow sequential search for demangled symbols, because lookup_symbol thinks
- `$this' is from a quoted name string. Here's a workaround; but more work is
- needed.
-
- ===================================================================
- RCS file: main.c,v
- retrieving revision 4.6
- diff -c -r4.6 main.c
- *** main.c 1992/07/14 07:34:27 4.6
- --- main.c 1992/07/28 00:02:51
- ***************
- *** 1054,1060 ****
-
- /* Variables which are necessary for fancy command line editing. */
- char *gdb_completer_word_break_characters =
- ! " \t\n!@#$%^&*()+=|~`}{[]\"';:?/>.<,-";
-
- /* When completing on command names, we remove '-' from the list of
- word break characters, since we use it in command names. If the
- --- 1054,1060 ----
-
- /* Variables which are necessary for fancy command line editing. */
- char *gdb_completer_word_break_characters =
- ! " \t\n!@#%^&*()+=|~`}{[]\"';:?/>.<,-";
-
- /* When completing on command names, we remove '-' from the list of
- word break characters, since we use it in command names. If the
- ***************
- *** 1062,1068 ****
- it thinks that the string needs to be quoted and automatically supplies
- a leading quote. */
- char *gdb_completer_command_word_break_characters =
- ! " \t\n!@#$%^&*()+=|~`}{[]\"';:?/>.<,";
-
- /* Characters that can be used to quote completion strings. Note that we
- can't include '"' because the gdb C parser treats such quoted sequences
- --- 1062,1068 ----
- it thinks that the string needs to be quoted and automatically supplies
- a leading quote. */
- char *gdb_completer_command_word_break_characters =
- ! " \t\n!@#%^&*()+=|~`}{[]\"';:?/>.<,";
-
- /* Characters that can be used to quote completion strings. Note that we
- can't include '"' because the gdb C parser treats such quoted sequences
-
-