This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


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

Re: PATCH: Add __frame_state_for for gcc 3.0.1


On Thu, Jul 05, 2001 at 09:59:52AM -0700, H . J . Lu wrote:
> > 
> > > > I think the important part of the patch now is really the missing DW_EH_PE_*
> > > > handling stuff.
> > > 
> > > I can always abort -). Does it only happen when a pre-G++ 3.0
> > > binary throw an exception inside libc.so?
> > 
> > If just libc.so was compiled using GCC 3.0 in a pre-GCC 3.0 program and it
> > throws an exception through qsort or the likes, it will abort. That's
> > undesirable.
> 

I created a testcase and added some traces in frame-dwarf2.c. It turns
out that when a pre-GCC 3.0 program throws an exception inside libc.so
compiled with gcc 3.0, _Unwind_Find_FDE in

	f = _Unwind_Find_FDE (pc_target, &bases);
	if (f == 0)
	  return 0;

will return 0. That is _Unwind_Find_FDE cannot find the frame if you
have mixed g++ v2 and g++ v3 frames. Do we really want to modify
_Unwind_Find_FDE to support such a thing? I think the best we can
do may be detect such a condition and issue a fatal error message.


H.J.


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