971016: EH frame_init trouble on Sparc
Teemu Torma
tot@trema.com
Wed Oct 22 03:11:00 GMT 1997
I attempted to throw exceptions in a large C++ application
using snapshot 971016, and ran into trouble.
The problem is that find_fde calls frame_init if pc_begin is zero.
However, frame_init finds the lowest pc_begin as zero, causing
the application to hang and eventually crash. I think it is doing
initializations over and over again, and frame_init keeps allocating
more and more memory.
The quick fix to make it work at all is to set pc_begin to 1 in
frame_init if it would be zero, but I think the problem lies
somewhere else. There seems to be a lot of fdes with pc_begin
is zero.
This always happens with the first object in find_fde where ob->count
is over 10000. The application itself uses ~15 biggish shared C++
libraries and ~20 shared C libraries (Motif etc).
Any pointers where to start looking?
I also noticed that it takes considerable amount of time
to throw the first exception, due to initializations done
at that point.
Teemu
More information about the Gcc
mailing list