我在我的ARM平台上使用memcpy,我想查看memcpy的源代码。从我的源代码查看一个对象转储,我知道使用了此memcpy:
/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7e-m/libc.a(lib_a-memcpy.o)
如何查看memcpy的.c源代码?
答案 0 :(得分:0)
在 some 编译器(带有 some 优化标志)上,memcpy
将使用一些__builtin_memcpy
,由编译器神奇地处理(并且可以甚至不发出任何函数调用,但总是内联和专用)。
请参阅this相关问题和documentation of GCC builtins。最终,深入研究GCC编译器的源代码。
还要查看您的libc
的源代码。它可能在某些内部标头中提到了__builtin_mempcy
。
当然,请使用gcc -S -fverbose-asm -O
并查看生成的汇编文件*.s