Как я могу определить, какая функция вызывается здесь? - PullRequest
0 голосов
/ 28 января 2019

Просто чтобы удовлетворить свое любопытство, я запускаю otool -tV ./MyApp.app/Contents/MacOS/MyApp > out.txt на различных исполняемых файлах MacOS / X, а затем просматриваю сгенерированные списки ассемблерных кодов в out.txt, чтобы увидеть, что в них.

Во многих местах я вижу что-то вроде этого:

0000000100bae6fb        callq   0x100bb2dc8 ## symbol stub for: _memcpy

... что, с полезным комментарием, имеет смысл;Я могу сказать, что целью этой строки является вызов функции memcpy(), которая будет расположена по адресу 0x100bb2dc8 в области памяти процесса.

Однако в других местах есть экземпляры callq без полезных комментариев, например:

000000010056247c        callq   0x11056246d

... и в этих случаях я не знаю, как определить, какая функция вызывается.Есть ли способ выяснить это?

(Я пытался найти ссылочный адрес в выводе otool, но AFAICT его там нет; значения адресов в начале каждой строки варьируются от 00000001000061c0 до 0000000100bb014c,и этот диапазон не включает адрес 0x11056246d)

...