Subject: bug#3585: gdb not responding on Emacs from CVS

From: Baoqiu Cui <[email-masked]>
Date: Tue, 16 Jun 2009 14:40:13 -0700

Baoqiu Cui <[email-masked]> writes:

> After typing in ``pwd<RET>'', gdb-debug-log has the following value
> (from which you can see the GDB version that I use):
>
> ------------------------------------------------------------------------
> gdb-debug-log is a variable defined in `gdb-ui.el'.
> Its value is 
> ((recv . "(gdb) ")
>  (recv . "Using host libthread_db library \"/lib64/tls/libthread_db.so.1\".\n")
>  (recv . "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.  Type \"show copying\"\nand \"show warranty\" for details.\nThis GDB was configured as \"x86_64-unknown-linux-gnu\"...\n")
>  (recv . "GNU gdb 6.7.1\nCopyright (C) 2007 Free Software Foundation, Inc.\n"))
> ------------------------------------------------------------------------
>
> It seems that the Return key was ignored.  After pressing C-c C-c, the
> value of gdb-debug-log becomes:
>
> ------------------------------------------------------------------------
> gdb-debug-log is a variable defined in `gdb-ui.el'.
> Its value is 
> ((recv . "(gdb) ")
>  (recv . "Quit\n")
>  (recv . "(gdb) ")
>  (recv . "Using host libthread_db library \"/lib64/tls/libthread_db.so.1\".\n")
>  (recv . "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.  Type \"show copying\"\nand \"show warranty\" for details.\nThis GDB was configured as \"x86_64-unknown-linux-gnu\"...\n")
>  (recv . "GNU gdb 6.7.1\nCopyright (C) 2007 Free Software Foundation, Inc.\n"))
> ------------------------------------------------------------------------

Here is some more information.  It seems that this problem has something
to do with the size of the program that I am trying to debug.  If I try
to follow the same steps for a small testing program, everything is
fine.

I noticed that, for the big program that I was debugging, it took about
50 seconds to have the "[initializing...]" Debugger status in mode-line
changed to "[ready]".  GDB simply does not respond to user's commands
before it is *ready*.

I tried the same thing on Emacs 21, which does not report status like
[initializing...] or [ready], and it seems that GDB interface there is
much faster.  It only takes 10-15 seconds to load the same big program
and then display the "(gdb) " prompt.  Once the prompt is displayed, GDB
is *ready* to respond any command I type in.

Why does it take 50 seconds to "initialize" things?  Emacs 22 seems to
have the same "delay".  Is there anyway to cut the time spent on
initializing?

Thanks,
Baoqiu