This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
deregister_frame_info w/o register?
- To: egcs-bugs at egcs dot cygnus dot com
- Subject: deregister_frame_info w/o register?
- From: Robert Lipe <robertl at sco dot com>
- Date: Sun, 31 Oct 1999 16:48:38 -0600
I finally got a chance to look at the horrible test results on COFF
mode of i686-pc-sco3.2v5.0.5. It looks like (even for "hello, world"
in C) __deregister_frame_info() is being called when there isn't a
corresponding call to register_frame_info(). Does this ring bells for
anyone?
(gdb) run
Starting program: /play/negcs/gcc/./a.out
Hello
Breakpoint 1, 0x2918 in exit ()
(gdb) c
Continuing.
Program received signal SIGABRT, Aborted.
0x28e0 in kill ()
(gdb) where
#0 0x28e0 in kill ()
#1 0x1295 in abort ()
#2 0x11b6 in _exithandle ()
#3 0x126e in abort ()
#4 0xe83 in __deregister_frame_info (begin=0x754c) at frame.c:636
#5 0x240 in __do_global_dtors () at libgcc2.c:-1
#6 0x11cd in _exithandle ()
#7 0x291d in exit ()
[ The bad debugging info is next on my list... ]
Breakpoint 2, 0xe24 in __deregister_frame_info (begin=0x8073904) at frame.c:636
636 case DW_CFA_set_loc:
(gdb) print objects
$1 = (struct object *) 0x0
Certainly OpenServer has an obtuse ctor/dtor scheme becuase of the way it
handles ELF and COFF which use completely different schemes. But this had
been working and stable until about August. ELF remains fine. But COFF
is going down in flames becuase we immediately fall out of the loop in
__deregister_frame_info and into the abort.