emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gdb emacs reporting 'Function "x_error_quitter" not defined'


From: Nick Roberts
Subject: Re: gdb emacs reporting 'Function "x_error_quitter" not defined'
Date: Sat, 29 Jan 2005 13:16:29 +1300

> > Stefan's Jan 27, 2005 xterm.c patch does not allow a breakpoint on
> > x_error_quitter when compiled with gcc-3.4.2

> > $  nm xterm.o | grep quitter
> > 0000c530 t x_io_error_quitter

> So, just putting the function definition after tyhe function call is not
> enough to prevent inlining.  Too bad.

> > whereas Gary Lawrence Murphy's patch
> > (http://lists.gnu.org/archive/html/emacs-pretest-bug/2005-01/msg00425.html)
> > does:

(link is wrong, its in bug-gnu-emacs)

> > gcc-3.4.2:
> > $ nm xterm.o | grep quitter
> > 0000c900 T x_error_quitter
> > 0000c5f0 t x_io_error_quitter

> > gcc-3.3.2
> > $ nm xterm.o | grep quitter
> > 000095b0 T x_error_quitter
> > 00009630 t x_io_error_quitter

> Problem is, I don't understand how/why this patch makes any difference.
> Can someone enlighten me?
> BTW, whoever installs a patch that (tries to) fix this, please add a clear
> comment describing all the things we've tried and why they failed.

This is my understanding. Richard's patch did two things:

1) Moved the definition of x_error_quitter after x_error_handler.
2) Made x_error_quitter no longer static.

The error from 1 masked the fact that 2 prevented the inlining.
Gary Lawrence Murphy's patch undid 1 leaving 2.

I've looked at the manual for optimisations with gcc and I see that for
earlier versions (3.2 at least), -O2 doesn't do inlining but -O3 does.
So I guess a candidate patch can be tested with -O3. Just removing the
static keyword from the original xterm.c seems to work.

Nick





reply via email to

[Prev in Thread] Current Thread [Next in Thread]