[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: emacs dumps core on exit under solaris 2.8
From: |
Luc Maisonobe |
Subject: |
Re: emacs dumps core on exit under solaris 2.8 |
Date: |
Fri, 08 Nov 2002 13:54:17 +0100 |
Richard Stallman wrote:
> If you put a breakpoint at the start of __do_global_dtors_aux and then
> step with si to see what functions it calls, you may be able to tell
> which library it is.
Thanks a lot.
I tried this, but it seems the segmentation violation comes from within
__do_global_dtors_aux itself. You will find the gdb session attached,
with display/i $pc on, in order to get the instruction at each step. The
o1 register is null at this time, so it explains the violation. I don't
know what is in this register and why it is null.
So I have tried to remove some libraries using the configure option. All
works well when I remove libpng with the --without-png flag.
I tried to recompile both zlib 1.1.4 and libpng 1.2.5, just to make sure
everything was compiled with the same version of the gcc compiler, but
still had problems.
So I have dropped png support for now, and compile emacs using
--with-xim=no and --without-png.
Thanks for your help.
Luc
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /usr/local/src/redhat/BUILD/emacs-21.2/src/emacs -q -batch
Breakpoint 3, 0x00044468 in __do_global_dtors_aux ()
1: x/i $pc 0x44468 <__do_global_dtors_aux+4>: sethi %hi(0), %l1
(gdb) stepi
0x0004446c in __do_global_dtors_aux ()
1: x/i $pc 0x4446c <__do_global_dtors_aux+8>: sethi %hi(0x193000), %l7
(gdb)
0x00044470 in __do_global_dtors_aux ()
1: x/i $pc 0x44470 <__do_global_dtors_aux+12>: call 0x4445c <_start+116>
(gdb)
0x00044474 in __do_global_dtors_aux ()
1: x/i $pc 0x44474 <__do_global_dtors_aux+16>:
add %l7, 0x1c8, %l7 ! 0x1931c8 <XtApplyToWidgets>
(gdb)
0x0004445c in _start ()
1: x/i $pc 0x4445c <_start+116>: retl
(gdb)
0x00044460 in _start ()
1: x/i $pc 0x44460 <_start+120>: add %o7, %l7, %l7
(gdb)
0x00044478 in __do_global_dtors_aux ()
1: x/i $pc 0x44478 <__do_global_dtors_aux+20>: or %l1, 0xc, %o0
(gdb)
0x0004447c in __do_global_dtors_aux ()
1: x/i $pc 0x4447c <__do_global_dtors_aux+24>: ld [ %l7 + %o0 ], %o1
(gdb)
0x00044480 in __do_global_dtors_aux ()
1: x/i $pc 0x44480 <__do_global_dtors_aux+28>: ldub [ %o1 ], %o2
(gdb)
0x00044484 in __do_global_dtors_aux ()
1: x/i $pc 0x44484 <__do_global_dtors_aux+32>: cmp %o2, 0
(gdb)
0x00044488 in __do_global_dtors_aux ()
1: x/i $pc 0x44488 <__do_global_dtors_aux+36>:
bne 0x44508 <__do_global_dtors_aux+164>
(gdb)
0x0004448c in __do_global_dtors_aux ()
1: x/i $pc 0x4448c <__do_global_dtors_aux+40>: sethi %hi(0), %o0
(gdb)
0x00044490 in __do_global_dtors_aux ()
1: x/i $pc 0x44490 <__do_global_dtors_aux+44>: or %o0, 0x10, %o0 ! 0x10
(gdb)
0x00044494 in __do_global_dtors_aux ()
1: x/i $pc 0x44494 <__do_global_dtors_aux+48>: ld [ %l7 + %o0 ], %o0
(gdb)
0x00044498 in __do_global_dtors_aux ()
1: x/i $pc 0x44498 <__do_global_dtors_aux+52>: ld [ %o0 ], %o1
(gdb)
0x0004449c in __do_global_dtors_aux ()
1: x/i $pc 0x4449c <__do_global_dtors_aux+56>: ld [ %o1 ], %o1
(gdb) info reg
g0 0x0 0
g1 0xfec95e98 -20357480
g2 0x0 0
g3 0x0 0
g4 0x0 0
g5 0x0 0
g6 0x0 0
g7 0x0 0
o0 0x28fc44 2686020
o1 0x0 0
o2 0x0 0
o3 0xff3e2668 -12704152
o4 0x0 0
o5 0x0 0
sp 0xffbee820 4290701344
o7 0x44470 279664
l0 0x1 1
l1 0x0 0
l2 0xfec9bde8 -20333080
l3 0xfecba4d4 -20208428
l4 0xfec1b8d4 -20858668
l5 0x0 0
l6 0xff3e3c40 -12698560
l7 0x1d7638 1930808
i0 0xfec1b8d4 -20858668
i1 0x1b6 438
i2 0xfeff1904 -16836348
i3 0x0 0
i4 0xff3e2668 -12704152
i5 0xfec0eb08 -20911352
fp 0xffbee890 4290701456
i7 0x1b0758 1771352
y 0x0 0
psr 0xfe401007 -29356025 icc:-Z--, pil:0, s:0, ps:0,
et:0, cwp:7
wim 0x0 0
tbr 0x0 0
pc 0x4449c 279708
npc 0x444a0 279712
fpsr 0x0 0 rd:N, tem:0, ns:0, ver:0, ftt:0, qne:0, fcc:=,
aexc:0, cexc:0
cpsr 0x0 0
(gdb) stepi
Program received signal SIGSEGV, Segmentation fault.
0x0004449c in __do_global_dtors_aux ()
1: x/i $pc 0x4449c <__do_global_dtors_aux+56>: ld [ %o1 ], %o1
(gdb)