Search code examples
iosxcodedebug-symbols

Armv7s in debug symbols only if pulled from recent device?


When symbolicating iOS crashes, scripts use iOS debug symbols that are stored in ~/Library/Developer/Xcode/iOS DeviceSupport. I've got a crash from iOS 7.1.2 (11D257) where all the lines in the module list but the actual executable have the armv7s architecture, like this:

0x30c8d000 - 0x30e77fff  Foundation armv7s  <52121842f9863ab49b775758dd05db0b> /System/Library/Frameworks/Foundation.framework/Foundation

I've got this very version of iOS under DeviceSupport, however, the system stackpoints fail to symbolicate; the script claims that none of the iOS files has the armv7s slice. Indeed, if I run

lipo -info '~/Library/Developer/Xcode/iOS DeviceSupport/7.1.2 (11D257)/Symbols/System/Library/Frameworks/Foundation.framework/Foundation'

it says that only armv7 is present.

I've pulled the symbols from an iPhone 4; its CPU doesn't support armv7s. If you have an armv7s-capable device (iPhone 5+, iPad 3+) with iOS 7.1.2, can you please run the same command and confirm that the version of Foundation you have contains the armv7s slice?


Solution

  • You get armv7s iOS system symbols from devices with armv7s or arm64 CPU. The iPhone 4 has a armv7 CPU, so it obviously can't provide you with armv7s symbols.