Subject: Re: bug#10580: 24.0.92; gdb initialization takes more than one minute at 100% CPU

From: Chong Yidong <[email-masked]>
Date: Tue, 08 May 2012 16:28:27 +0800

Dov Grobgeld <[email-masked]> writes:

> I added the above patch and the result is as follows:
> After the following two lines:
>
>     nread = read_process_output (proc, channel);
>     pp = XPROCESS(proc);
>
> nread==4095, pp->pid=1234 repeatedly. (Actually 1234 seems to be an
> arbitrary, but constant number between 1000 and 2000). 
>
> Some more info that I found through strace that might help.
> Alltogether read_process_output() is called 214 times and thus a total
> of 870k of text is read through /dev/ptmx to read_process_output() .
> Could the amount of data possibly explain the slowness?

Maybe, if this process IO is emitted non-stop.  But this indicates that
the traffic is due to the main connection with the main gdb process
(which has a positive pid), not with the pty which gdb-mi uses for IO
(which has pid -2) like I guessed.

Could you do

M-: (setq gdb-enable-debug t) RET

and show the value of the variable `gdb-debug-log'?

For example, when I run M-x gdb on the Emacs binary itself,
`gdb-debug-log' gets 22 entries by the time I get to the (gdb) prompt;
this is the usual GDB-MI chatter.  From the time I "run" the program
till the debugged program exits, it gains another 24 entries.  Do you
see a lot more traffic with your program?