यह ओएस निर्भर है।
ओएस एक्स में, मच हेडर में एक फ्रेम है जिसमें ईआईपी (निर्देश सूचक) रजिस्टर के लिए प्रारंभ पता होता है।
एक बार बाइनरी लोड हो जाने पर, ओएस इस पते से निष्पादन शुरू करता है:
cristi:test diciu$ otool -l ./a.out | grep -A 10 LC_UNIXTHREAD
cmd LC_UNIXTHREAD
cmdsize 80
flavor i386_THREAD_STATE
count i386_THREAD_STATE_COUNT
[..]
ss 0x00000000 eflags 0x00000000 eip 0x00001f8c cs 0x00000000
[..]
पता बाइनरी से "स्टार्ट" फ़ंक्शन का पता है:
cristi:test diciu$ nm ./a.out
0000200c D _NXArgc
00002008 D _NXArgv
00002000 D ___progname
00001fe0 t __dyld_func_lookup
00001000 A __mh_execute_header
[..]
00001f8c T start
मैक ओएस एक्स में, यह "प्रारंभ" फ़ंक्शन है जिसे "मुख्य" फ़ंक्शन से पहले भी पहले कहा जाता है:
(gdb) b start
Breakpoint 1 at 0x1f90
(gdb) b main
Breakpoint 2 at 0x1ff4
(gdb) r
Starting program: /Users/diciu/Programming/test/a.out
Reading symbols for shared libraries ++. done
Breakpoint 1, 0x00001f90 in start ()