[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includ
From: |
Andrew M. Scott |
Subject: |
Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH] |
Date: |
Mon, 31 Jan 2005 10:07:08 -0700 |
Recapping:
Applying Gary Lawrence Murphy's patch
http://lists.gnu.org/archive/html/bug-gnu-emacs/2005-01/msg00335.html
to xterm.c just prior to RMS's 1/24/2005 xterm.c patch, and compiling
with gcc-3.4.2 results in:
>> gcc-3.4.2: $ nm xterm.o | grep quitter
>> 0000c900 T x_error_quitter
>> 0000c5f0 t x_io_error_quitter
rms> This shows the function was not discarded. If it is not
rms> static, it cannot be discarded. But this does not tell us if
rms> the function was actually inlined. It might have been inlined
rms> *and* compiled straight.
rms> The only way to tell if it was inlined is to look at the
rms> compiled code of x_error_handler and see if it calls
rms> x_error_quitter. You could do that by using x/i in GDB. First
rms> do `x/i &x_error_handler'. Then x/10i will print 10 more
rms> instructions, each time you do it.
rms> Andrew, could you try that?
chlr4917.ascott.504> gdb ./emacs
GNU gdb 6.3
Breakpoint 1 at 0x80e6d56: file /stor/garray/src/savannah/emacs/src/emacs.c,
line 454.
Breakpoint 2 at 0x80ca167: file /stor/garray/src/savannah/emacs/src/xterm.c,
line 7787.
(gdb) x/i &x_error_handler
0x80ca1d0 <x_error_handler>: push %ebp
(gdb) x/10i
0x80ca1d1 <x_error_handler+1>: mov %esp,%ebp
0x80ca1d3 <x_error_handler+3>: sub $0x18,%esp
0x80ca1d6 <x_error_handler+6>: mov 0x82c876c,%eax
0x80ca1db <x_error_handler+11>: mov 0x8(%ebp),%ecx
0x80ca1de <x_error_handler+14>: mov 0xc(%ebp),%edx
0x80ca1e1 <x_error_handler+17>: cmp 0x82ff394,%eax
0x80ca1e7 <x_error_handler+23>: je 0x80ca210 <x_error_handler+64>
0x80ca1e9 <x_error_handler+25>: movl $0xc8,0xc(%esp)
0x80ca1f1 <x_error_handler+33>: and $0xfffffff8,%eax
0x80ca1f4 <x_error_handler+36>: mov 0xc(%eax),%eax
(gdb) x/10i
0x80ca1f7 <x_error_handler+39>: mov %eax,0x8(%esp)
0x80ca1fb <x_error_handler+43>: movzbl 0x10(%edx),%eax
0x80ca1ff <x_error_handler+47>: mov %ecx,(%esp)
0x80ca202 <x_error_handler+50>: mov %eax,0x4(%esp)
0x80ca206 <x_error_handler+54>: call 0x804f588 <floor+496>
0x80ca20b <x_error_handler+59>: leave
0x80ca20c <x_error_handler+60>: xor %eax,%eax
0x80ca20e <x_error_handler+62>: ret
0x80ca20f <x_error_handler+63>: nop
0x80ca210 <x_error_handler+64>: mov %edx,0x4(%esp)
(gdb) x/10i
0x80ca214 <x_error_handler+68>: mov %ecx,(%esp)
0x80ca217 <x_error_handler+71>: call 0x80ca150 <x_error_quitter>
0x80ca21c <x_error_handler+76>: leave
0x80ca21d <x_error_handler+77>: xor %eax,%eax
0x80ca21f <x_error_handler+79>: ret
0x80ca220 <x_process_timeouts>: push %ebp
0x80ca221 <x_process_timeouts+1>: mov %esp,%ebp
0x80ca223 <x_process_timeouts+3>: sub $0x8,%esp
0x80ca226 <x_process_timeouts+6>: mov 0x82c85ec,%eax
0x80ca22b <x_process_timeouts+11>: test %eax,%eax
(gdb) x/10i
0x80ca22d <x_process_timeouts+13>: je 0x80ca290
<x_process_timeouts+112>
0x80ca22f <x_process_timeouts+15>: incl 0x82fa258
0x80ca235 <x_process_timeouts+21>: jmp 0x80ca24d <x_process_timeouts+45>
0x80ca237 <x_process_timeouts+23>: mov $0x2,%ecx
0x80ca23c <x_process_timeouts+28>: mov %ecx,0x4(%esp)
0x80ca240 <x_process_timeouts+32>: mov 0x82f9f94,%eax
0x80ca245 <x_process_timeouts+37>: mov %eax,(%esp)
0x80ca248 <x_process_timeouts+40>: call 0x804f778
<jpeg_resync_to_restart+384>
0x80ca24d <x_process_timeouts+45>: mov 0x82f9f94,%eax
0x80ca252 <x_process_timeouts+50>: mov %eax,(%esp)
(gdb) x/10i
0x80ca255 <x_process_timeouts+53>: call 0x804e238 <_init+208>
0x80ca25a <x_process_timeouts+58>: test $0x2,%al
0x80ca25c <x_process_timeouts+60>: jne 0x80ca237 <x_process_timeouts+23>
0x80ca25e <x_process_timeouts+62>: mov 0x82fa258,%eax
0x80ca263 <x_process_timeouts+67>: dec %eax
0x80ca264 <x_process_timeouts+68>: test %eax,%eax
0x80ca266 <x_process_timeouts+70>: mov %eax,0x82fa258
0x80ca26b <x_process_timeouts+75>: jne 0x80ca282 <x_process_timeouts+98>
0x80ca26d <x_process_timeouts+77>: mov 0x82fa218,%edx
0x80ca273 <x_process_timeouts+83>: test %edx,%edx
(gdb) x/10i
0x80ca275 <x_process_timeouts+85>: jne 0x80ca2a1
<x_process_timeouts+129>
0x80ca277 <x_process_timeouts+87>: mov 0x8303bd0,%eax
0x80ca27c <x_process_timeouts+92>: test %eax,%eax
0x80ca27e <x_process_timeouts+94>: jne 0x80ca29b
<x_process_timeouts+123>
0x80ca280 <x_process_timeouts+96>: leave
0x80ca281 <x_process_timeouts+97>: ret
0x80ca282 <x_process_timeouts+98>: jge 0x80ca280 <x_process_timeouts+96>
0x80ca284 <x_process_timeouts+100>: call 0x80e6d50 <abort>
0x80ca289 <x_process_timeouts+105>: lea 0x0(%esi),%esi
0x80ca290 <x_process_timeouts+112>: call 0x80862d0 <popup_activated>
(gdb) x/10i
0x80ca295 <x_process_timeouts+117>: test %eax,%eax
0x80ca297 <x_process_timeouts+119>: jne 0x80ca22f <x_process_timeouts+15>
0x80ca299 <x_process_timeouts+121>: leave
0x80ca29a <x_process_timeouts+122>: ret
0x80ca29b <x_process_timeouts+123>: leave
0x80ca29c <x_process_timeouts+124>: jmp 0x8187c50 <do_pending_atimers>
0x80ca2a1 <x_process_timeouts+129>: call 0x80eff40 <reinvoke_input_signal>
0x80ca2a6 <x_process_timeouts+134>: jmp 0x80ca277 <x_process_timeouts+87>
0x80ca2a8 <x_process_timeouts+136>: nop
0x80ca2a9 <x_process_timeouts+137>: lea 0x0(%esi),%esi
(gdb)
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH], (continued)
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH], Eli Zaretskii, 2005/01/28
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH], Andrew M. Scott, 2005/01/28
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH], Stefan Monnier, 2005/01/28
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH], Miles Bader, 2005/01/28
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH], Richard Stallman, 2005/01/29
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH], Stefan Monnier, 2005/01/29
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH], Miles Bader, 2005/01/29
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH], Richard Stallman, 2005/01/30
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH], Miles Bader, 2005/01/30
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH], Richard Stallman, 2005/01/28
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH],
Andrew M. Scott <=
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined' [includes PATCH], Richard Stallman, 2005/01/28
- Re: gdb emacs reporting 'Function "x_error_quitter" not defined', Kim F. Storm, 2005/01/26
Re: gdb emacs reporting 'Function "x_error_quitter" not defined', Nick Roberts, 2005/01/28