You can use "otool -l" to list segments in a Mach-O binary. You'd be looking for compiler options that create __unwind_info, presumably.
However libunwind doesn't currently support OS X or Mach-O at all. It's unclear to me from your question what you tried. There's a system libunwind, but it has little or nothing to do with this one, and doesn't for example have the same API. But see http://opensource.apple.com/source/libunwind/libunwind-30/include/mach-o/compact_unwind_encoding.h for some docs. On Tue, Feb 3, 2015 at 10:09 PM, Scott Biersdorff <[email protected]> wrote: > Thanks, adding this worked great on Linux, Do you know the equivalent > section in a Mach-O binary (OSX) that needs to be present for libunwind to > get the correct IP and FP (eh_frame_hdr does not appear to be present for > gnu compiled binaries)? > > - Scott > > -----Original Message----- > From: Chris January [mailto:[email protected]] > Sent: Tuesday, January 20, 2015 1:45 AM > To: Scott Biersdorff > Cc: [email protected]; Juul VanderSpek > Subject: Re: [Libunwind-devel] Libunwind reports the same ip and fp for > Fortran code compiled with PGI > > Hello Scott, > > The PGI compiled executable is missing the .eh_frame_hdr section. Try > adding -Wl,--eh-frame-hdr to LDFLAGS in Makefile. This fixes the problem. > > Regards, > Chris January - VP Engineering - Allinea Software Ltd. > > On Mon, 2015-01-19 at 22:02 +0000, Scott Biersdorff wrote: > > We are looking into an issue with libunwind where it reports the same > > address as both a IP and FP. This happens with a simple PGI compiled > > Fortran example. This same example compiled with gfortran reports > > different addresses: > > > > > > > > ./fortran-standalone.gnu.exe > > > > ip= 0x0000000000400b19 fp= 0x0000000000400aff > > > > ip= 0x0000000000400a45 fp= 0x000000000040098d > > > > ip= 0x0000000000400aa4 fp= 0x0000000000400a82 > > > > ip= 0x0000000000400af8 fp= 0x0000000000400ac4 > > > > ip= 0x00007f43bad53ec5 fp= 0x00007f43bad53dd0 > > > > ip= 0x00000000004008c9 fp= 0x00000000004008a0 > > > > > > > > ./fortran-standalone.pgi.exe > > > > ip= 0x00000000004027eb fp= 0x00000000004027eb > > > > ip= 0x00000000004027b0 fp= 0x00000000004027b0 > > > > ip= 0x0000000000402712 fp= 0x0000000000402712 > > > > ip= 0x00000000004026c4 fp= 0x00000000004026c4 > > > > > > > > (Note that both stacks run into strange addresses unknown in the > > object file; my suspicion is that these are trampoline functions > > somewhere on stack or heap). > > > > > > > > I’ve attached the sources and binaries for this example. Can you help > > us understand what is particular about this binary compiled by PGI > > that causes this? Is there another way to retrieve the function > > pointer? > > > > _______________________________________________ > Libunwind-devel mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/libunwind-devel >
_______________________________________________ Libunwind-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/libunwind-devel
