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

From: Dov Grobgeld <[email-masked]>
Date: Tue, 8 May 2012 14:59:36 +0300

Indeed, my result is much fatter.

(safe-length gdb-debug-log) => 223

and the total length of the messages is about 800k. So it seems that the
time spent is simply the parsing of this large chunk of data? What gdb
command is run that outputs all the file="..." commands?

Thanks,
Dov

On Tue, May 8, 2012 at 11:28 AM, Chong Yidong <[email-masked]> wrote:

> 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?
>