0

I've been told that it is a good idea to make sure that all of the symbols from an application are stripped when you release it. But if you strip all the symbols from a binary on an OS X application, how does the nib know where the methods it is referencing are located in the binary? Looking inside a nib, there are no addresses inside of it. So I was rather surprised to find that my application would still run if I stripped the symbols from it. How on earth does the nib know where the functions are located? Also, if the mapping from the symbols in the nib to addresses in the binary are simply stored somewhere else (although I can't find them anywhere) what is the point to stripping the binary anyway?

Bob Bobbio
  • 577
  • 2
  • 5
  • 10
  • You probably can't strip method selectors from Objective-C at all, seeing as they're needed at runtime for method lookup. Stripping might get rid of some other kind of symbols, but not these. – millimoose Jan 03 '13 at 21:58
  • I see, there is a difference between method selectors and the debugging symbols, but where could these selectors exist, if you do strip the symbols from a binary, the method names do not seem to any longer exist in the binary. – Bob Bobbio Jan 03 '13 at 22:03
  • 1
    Ah, never mind, they do still exist, a quick inspection with a hex editor confirms it, thanks for clearing up my confusion – Bob Bobbio Jan 03 '13 at 22:04

0 Answers0