bug-hurd
[Top][All Lists]
Advanced

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

Re: emacs doesn't compile (again)


From: Marcus Brinkmann
Subject: Re: emacs doesn't compile (again)
Date: Wed, 20 Jun 2001 00:29:45 +0200
User-agent: Mutt/1.2i

On Tue, Jun 19, 2001 at 05:55:17PM -0400, Roland McGrath wrote:
> Oh yeah, "info frame" is always good too.  There is definitely some funny
> business here.  The reported faulting eip value is in the middle of an
> instruction.  You're going to have to watch it happen.

Ah, this sheds some light on it.
Below is another script.  It seems a pointer to a function is a bit bogus.
What next?

Marcus


Script started on Wed Jun 20 00:25:07 2001
ulysses:/mnt2/emacs/emacs20-20.7/leim# gdb --command=../../debug ../src/emacs
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-gnu0.2"...
(gdb) i b   b rea     b ralloc.c:514
Breakpoint 1 at 0x811ff20: file ralloc.c, line 514.
(gdb) run
Starting program: /mnt2/emacs/emacs20-20.7/leim/../src/emacs -batch 
--no-init-file --no-site-file --multibyte -l 
/mnt2/emacs/emacs20-20.7/leim/../lisp/international/titdic-cnv --eval 
'(batch-titdic-convert t)' -dir quail /mnt2/emacs/emacs20-20.7/leim/CXTERM-DIC
Converting all tit files in the directory 
/mnt2/emacs/emacs20-20.7/leim/CXTERM-DIC
Converting /mnt2/emacs/emacs20-20.7/leim/CXTERM-DIC/4Corner.tit to 
quail-package...

Breakpoint 1, relocate_blocs (bloc=0x828a688, heap=0x81ea1e0, 
    address=0x8307408 "") at ralloc.c:514
514               address = obtain (address, s);
(gdb) l
509     
510                   tb = tb->next;
511                 }
512     
513               /* Get that space.  */
514               address = obtain (address, s);
515               if (address == 0)
516                 return 0;
517     
518               heap = last_heap;
(gdb) s
obtain (address=0x8307408 "", size=75904) at ralloc.c:246
246     {
(gdb) n
251       for (heap = last_heap; heap; heap = heap->prev)
(gdb) 
253           if (heap->start <= address && address <= heap->end)
(gdb) 
257       if (! heap)
(gdb) 
262       while (heap && address + size > heap->end)
(gdb) 
264           heap = heap->next;
(gdb) 
265           if (heap == NIL_HEAP)
(gdb) 
274           POINTER new = (*real_morecore)(0);
(gdb) 

Program received signal SIGBUS, Bus error.
0x12c460e in _obstack_newchunk (h=0x8307408, length=75904) at obstack.c:301
301     obstack.c: No such file or directory.
(gdb) print real_morecore
$1 = (POINTER (*)()) 0x12c460c <_obstack_newchunk+144>
(gdb) info frame
Stack level 0, frame at 0x100c88c:
 eip = 0x12c460e in _obstack_newchunk (obstack.c:301); saved eip 0x811ff2a
 called by frame at 0x100c8bc
 source language c.
 Arglist at 0x100c88c, args: h=0x8307408, length=75904
 Locals at 0x100c88c, Previous frame's sp is 0x0
 Saved registers:
  ebx at 0x100c854, ebp at 0x100c88c, esi at 0x100c858, edi at 0x100c85c,
  eip at 0x100c890
(gdb) ifno regs
Undefined command: "ifno".  Try "help".
(gdb) info regs 
eax            0x12c460c        19678732
ecx            0x8319c88        137469064
edx            0x0      0
ebx            0x828a688        136881800
esp            0x100c860        0x100c860
ebp            0x100c88c        0x100c88c
esi            0x8307408        137393160
edi            0x828a688        136881800
eip            0x12c460e        0x12c460e
eflags         0x10303  66307
cs             0x17     23
ss             0x1f     31
ds             0x1f     31
es             0x1f     31
fs             0x1f     31
gs             0x1f     31
fctrl          0x0      0
fstat          0x0      0
ftag           0x0      0
fiseg          0x0      0
fioff          0x0      0
foseg          0x0      0
fooff          0x0      0
fop            0x0      0
(gdb) disas %eip    % $pc
Dump of assembler code for function _obstack_newchunk:
0x12c457c <_obstack_newchunk>:  push   %ebp
0x12c457d <_obstack_newchunk+1>:        mov    %esp,%ebp
0x12c457f <_obstack_newchunk+3>:        sub    $0x2c,%esp
0x12c4582 <_obstack_newchunk+6>:        push   %edi
0x12c4583 <_obstack_newchunk+7>:        push   %esi
0x12c4584 <_obstack_newchunk+8>:        push   %ebx
0x12c4585 <_obstack_newchunk+9>:        call   0x12c458a <_obstack_newchunk+14>
0x12c458a <_obstack_newchunk+14>:       pop    %ebx
0x12c458b <_obstack_newchunk+15>:       add    $0xbcf2e,%ebx
0x12c4591 <_obstack_newchunk+21>:       mov    0x8(%ebp),%esi
0x12c4594 <_obstack_newchunk+24>:       mov    0x4(%esi),%eax
0x12c4597 <_obstack_newchunk+27>:       mov    %eax,0xfffffffc(%ebp)
0x12c459a <_obstack_newchunk+30>:       mov    0x8(%esi),%eax
0x12c459d <_obstack_newchunk+33>:       mov    0xc(%esi),%edx
0x12c45a0 <_obstack_newchunk+36>:       sub    %eax,%edx
0x12c45a2 <_obstack_newchunk+38>:       mov    %edx,0xfffffff4(%ebp)
0x12c45a5 <_obstack_newchunk+41>:       mov    %edx,%eax
0x12c45a7 <_obstack_newchunk+43>:       add    0xc(%ebp),%eax
0x12c45aa <_obstack_newchunk+46>:       sar    $0x3,%edx
0x12c45ad <_obstack_newchunk+49>:       add    %edx,%eax
0x12c45af <_obstack_newchunk+51>:       add    0x18(%esi),%eax
0x12c45b2 <_obstack_newchunk+54>:       lea    0x64(%eax),%edi
0x12c45b5 <_obstack_newchunk+57>:       mov    (%esi),%eax
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) quit
The program is running.  Exit anyway? (y or n) y
ulysses:/mnt2/emacs/emacs20-20.7/leim# exit

Script done on Wed Jun 20 00:27:29 2001



reply via email to

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