Difference between revisions of "Mach-O"
From Lazarus wiki
Jump to navigationJump to searchm (→__module_info) |
|||
Line 26: | Line 26: | ||
version : culong; // version number | version : culong; // version number | ||
size : culong; // sizeof(objc_module)? | size : culong; // sizeof(objc_module)? | ||
− | name : PChar; | + | name : PChar; // virtual address of the module name. |
_symtab : Symtab; | _symtab : Symtab; | ||
− | end; | + | end; |
=== __image_info === | === __image_info === |
Revision as of 01:35, 28 August 2009
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;