我正在运行 gdb 来调试出现分段错误错误的程序。当我构建我的应用程序并运行时
gdb ./app
我得到以下输出:
Program received signal SIGSEGV, Segmentation fault.
__strcpy_avx2 () at ../sysdeps/x86_64/multiarch/strcpy-avx2.S:611
611 ../sysdeps/x86_64/multiarch/strcpy-avx2.S: No such file or directory.
跑步
bt
给出,
#0 __strcpy_avx2 () at ../sysdeps/x86_64/multiarch/strcpy-avx2.S:611
我不确定 gdb 是否缺少文件。
我不确定 gdb 是否缺少文件。
丢失的文件是 GLIBC 源代码的一部分,您可以安装它。
但是,
strcpy
实现内部的崩溃〜始终意味着您使用无效参数调用该函数(例如NULL
指针、无效的源或目标、不可写的目标等)。
因此,您应该使用
where
GDB 命令来检查对 strcpy
的调用来自何处,并检查 caller(很可能在您自己的代码中)。