backtrace() vs. _Unwind_Backtrace()

David Mosberger davidm@napali.hpl.hp.com
Fri Dec 5 04:12:00 GMT 2003


>>>>> On Fri, 5 Dec 2003 15:23:24 +1300, Bryce McKinlay <bryce@mckinlay.net.nz> said:

 Bryce> I have been working on a patch that revamps libgcj's stack
 Bryce> tracing, using the libgcc unwinder. I should be able to post
 Bryce> it this weekend.
Great!
 Bryce> One outstanding issue is what to do about Windows, which
 Bryce> apparantly doesn't use the DWARF unwinder.
What kind of unwind info does Windows use on x86? Is there a public
document describing it somewhere?
Anyhow, I suppose this is a cue for me to put in a pitch for libunwind? ;-)
(See http://www.hpl.hp.com/research/linux/libunwind/)
In my opinion, a DWARF2 unwinder is only a partial solution anyhow,
because not all platforms use DWARF2 unwind info and because it
doesn't support dynamically generated code. In contrast, the
libunwind API is mostly platform-independent (not limited to DWARF2),
supports dynamically generated code, and can be used for debuggers etc
as well.
Fortunately, as far as gcj is concerned, all of this doesn't really
matter: the GCC built-in unwinder and (the latest) libunwind support
the same _Unwind_* API, so whatever the unwinder, gcj should work fine
when using _Unwind_Backtrace().
	--david


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /