__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
的函数。