Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
__strcpy_sse2_未与-fno内置对齐_C_Debugging_Gdb_Strcpy - Fatal编程技术网

__strcpy_sse2_未与-fno内置对齐

__strcpy_sse2_未与-fno内置对齐,c,debugging,gdb,strcpy,C,Debugging,Gdb,Strcpy,我正在调试我的程序,然后最后一行发生了,我该如何修复它?我使用了-fno-builtin来查看strcpy(),但它显示正在调用\uu strcpy\u sse2\u 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 <stdi

我正在调试我的程序,然后最后一行发生了,我该如何修复它?我使用了
-fno-builtin
来查看
strcpy()
,但它显示正在调用
\uu strcpy\u sse2\u 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 <stdio.h>
2   #include <string.h>
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.
root@19:~/booksrc#gcc-fno builtin-g char#u array2.c
root@19:~/booksrc#gdb-q./a.out
从中读取符号。/a.out…完成。
(gdb)清单
1#包括
2#包括
3.
4 int main(){
5 char stru_a[20];
6.
7个strcpy(str_a,“你好,世界!\n”);
8打印F(str_a);
9   }
(gdb)中断6
0x708处的断点1:文件char_array2.c,第6行。
(gdb)断开strcpy
0x5a0处的断点2
(gdb)中断8
0x71b处的断点3:文件char_array2.c,第8行。
(gdb)运行
启动程序:/root/booksrc/a.out
char_array2.c处的断点1,main():7
7个strcpy(str_a,“你好,世界!\n”);
(gdb)续
持续的。
断点2,未对齐()
位于../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:47
47../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:没有这样的文件或目录。

\u strcpy\u sse2\u unaligned
是在您的机器上使用的
strcpy的实现。glibc会根据CPU的特性,使用一个

这与GCC和GCC内置无关。GCC发出对strcpy的调用。只是glibc碰巧调用了它未对齐的函数