Mach-O
From Free Pascal wiki
from Wikipedia:
Mach-O, short for Mach object file format, is a file format for executables, object code, shared libraries, dynamically-loaded code, and core dumps. A derivation of the a.out format, Mach-O offered more extensibility and faster access to information in the symbol table.
File Format Reference can be found here
Following tools are used in Mac OS X to view Mach-O files:
otool - object file displaying tool
nm - display name list (symbol table)
Objective-C segment
There're no documentation found over __OBJC segment and its sections. The following information has been gathered from cctools sources
Sections
__module_info
(objc_module record is declared at objc headers)
objc_module = packed record version : culong; // version number size : culong; // sizeof(objc_module)? name : PChar; // virtual address of the module name. _symtab : Symtab; end;
__image_info
The section contents image info information (8 bytes):
imageInfo = packed record version : uint32_t; flags : uint32_t; end;
Flags values:
F_and_C = $01; GC = $02; GC_only = $04;