расположение руки memcpy - PullRequest
       17

расположение руки memcpy

0 голосов
/ 06 сентября 2018

Я использую memcpy на моей платформе ARM и хочу просмотреть sourecode memcpy. Просматривая объектную дамп из моего исходного кода, я знаю, что используется этот memcpy:

/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7e-m/libc.a(lib_a-memcpy.o)

Как посмотреть исходный код .c memcpy?

1 Ответ

0 голосов
/ 06 сентября 2018

На некоторых компиляторах (с некоторыми флагами оптимизации), memcpy будет использовать некоторое __builtin_memcpy, которое волшебным образом обрабатывается компилятором (и может даже не вызывать вызов функции , но всегда будьте внимательны и специализированы).

См. этот связанный вопрос и документацию встроенных GCC . В конце концов погрузитесь в исходный код вашего компилятора GCC.

Смотрите также исходный код вашего libc. Вероятно, в каком-то внутреннем заголовке упоминается __builtin_mempcy.

Конечно, используйте gcc -S -fverbose-asm -O и посмотрите сгенерированный файл ассемблера *.s

...