Skip to content

Latest commit

 

History

History
20 lines (17 loc) · 745 Bytes

LC_MAIN.md

File metadata and controls

20 lines (17 loc) · 745 Bytes

LC_MAIN

LC_MAIN is a straightforward load command. It specifies the entry point of an executable.

/*
 * The entry_point_command is a replacement for thread_command.
 * It is used for main executables to specify the location (file offset)
 * of main().  If -stack_size was used at link time, the stacksize
 * field will contain the stack size need for the main thread.
 */
struct entry_point_command {
    uint32_t  cmd;	/* LC_MAIN only used in MH_EXECUTE filetypes */
    uint32_t  cmdsize;	/* 24 */
    uint64_t  entryoff;	/* file (__TEXT) offset of main() */
    uint64_t  stacksize;/* if not zero, initial stack size */
};

By default the entry point is the main function, but this can be changed by -e option at linking.