Hi,
I'm trying to resolve [non-symbolic] backtraces from our universal binary when it has been running on the "other" architecture, i.e. suppose I'm working on a PowerPC machine, but need to resolve backtraces from the Intel part of the Universal Binary.
My initial attempt (after I realized that straightforward usage of atos on the universal binary always uses the current architecture and thus gives incorrect backtraces when the executable was run on another architecture) was to use lipo to extract the architecture that was run when the backtrace was produced and then use atos on the extracted executable, e.g.
lipo -thin i386 my_universal_binary -output /tmp/ppc_binary atos -o /tmp/ppc_binary 0x95c3b090 0x927303fb 0x927e7b2e 0x92707dbf 0x90a45061 0x00020a19 ...
However, atos complains that the mach-o signature doesn't match, so it only seems to be able to work with native binaries :( Same applies for gdb - when I try to load the intel binary in gdb running on PowerPC, it can't work with it. Damn!
Any ideas how to resolve an intel backtrace on PowerPC and vice versa (given a universal binary with symbols)?
Thanks, </jum>
|