This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

deregister_frame_info w/o register?


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]