__strcpy_sse2_unaligned with -fno-builtin

我正在调试我的程序,然后最后一行发生了,我该如何解决? 我使用-fno-builtin来查看strcpy()但它显示__strcpy_sse2_unaligned被调用。

 root@19:~/booksrc# gcc -fno-builtin -g char_array2.c root@19:~/booksrc# gdb -q ./a.out Reading symbols from ./a.out...done. (gdb) list 1 #include  2 #include  3 4 int main() { 5 char str_a[20]; 6 7 strcpy(str_a, "Hello World!\n"); 8 printf(str_a); 9 } (gdb) break 6 Breakpoint 1 at 0x708: file char_array2.c, line 6. (gdb) break strcpy Breakpoint 2 at 0x5a0 (gdb) break 8 Breakpoint 3 at 0x71b: file char_array2.c, line 8. (gdb) run Starting program: /root/booksrc/a.out Breakpoint 1, main () at char_array2.c:7 7 strcpy(str_a, "Hello World!\n"); (gdb) cont Continuing. Breakpoint 2, __strcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:47 47 ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S: No such file or directory. 

__strcpy_sse2_unaligned是在您的计算机上使用的strcpy的实现。 glibc使用IFUNC解析器自动选择基于CPU特性的优化实现。

这不需要对GCC和GCC内置函数做任何事情。 GCC发出对strcpy 。 只是glibc恰好调用它__strcpy_sse2_unaligned的函数。