В MacOS я вижу стек, который выглядит примерно так (на самом верху стека находится ловушка для рассматриваемого кода, но я хочу понять, как я туда попал)
(gdb) where
...
#4 0x0000000112fdefc8 in appLibInit::appLibInit ()
#5 0x0000000112fdef71 in __sti__$E ()
#6 0x00007fff5fc112f7 in __dyld__ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE ()
#7 0x00007fff5fc0d20c in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEj ()
#8 0x00007fff5fc0d1b0 in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEj ()
#9 0x00007fff5fc0d1b0 in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEj ()
#10 0x00007fff5fc0d1b0 in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEj ()
#11 0x00007fff5fc0d2f4 in __dyld__ZN11ImageLoader15runInitializersERKNS_11LinkContextE ()
#12 0x00007fff5fc038b4 in __dyld__ZN4dyld24initializeMainExecutableEv ()
#13 0x00007fff5fc06ea1 in __dyld__ZN4dyld5_mainEPK11mach_headermiPPKcS5_S5_ ()
#14 0x00007fff5fc01695 in __dyld__ZN13dyldbootstrap5startEPK11mach_headeriPPKcl ()
#15 0x00007fff5fc0103a in __dyld__dyld_start ()
#16 0x0000000100000000 in ?? ()
#17 0x0000000000000001 in ?? ()
Функция appLibInit :: appLibInit - это конструктор C ++ для глобального объекта в нашем коде, поэтому я предполагаю, что я нахожусь в некотором предварительном коде, возможно, обрабатывающем все общие библиотеки, с которыми связаны (странно) рассматриваемый код не является чем-то, с чем мы ожидаем связать себя, если только он не втягивается чем-то другим).
Кажется, что фильтр mac c ++ не декодирует эти символы с префиксом __dyld.
Кто-нибудь знает какие-нибудь документы, описывающие последовательность запуска процесса MacOS, которые, возможно, дадут мне немного больше информации о том, что здесь происходит?