This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCJ Thread Dump


David Daney writes:
 > Bryce McKinlay wrote:
 > > David Daney wrote:
 > > 
 > >>
 > >> The problem I see is that for targets that have no frame pointer.  
 > >> These have to use the DWARF .eh_frame information for generating 
 > >> stacktraces.    The stop-the-world uses asynchronous signals and these 
 > >> are not compatible with DWARF exception handling.
 > > 
 > > On most platforms, we can unwind through signal handlers thanks to 
 > > MD_FALLBACK_FRAME_STATE_FOR - this is how NullPointerException is 
 > > implemented.
 > 
 > Indeed I know all about MD_FALLBACK_FRAME_STATE_FOR.  The problem is 
 > that gcc only generates good unwinding data for instructions that can 
 > fault (ie synchronous signals).  In general it does not work for 
 > asynchronous signals (which are used to stop-the-world) as that would 
 > require much larger tables.

Exactly right.  In particular, we do not generate unwinder information
for prologues and epilogues.  If a thread is pre-empted during one of
these, we don't have any way to find a valid frame pointer.

Andrew.


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