sse4.S导致分段错误
我正在写一个用c编写的小工具,并遇到了一个我现在不知道如何解决的分段错误。 在GDB中运行给了我下面的提示:
Program received signal SIGSEGV, Segmentation fault.
__strlen_sse42 () at ../sysdeps/x86_64/multiarch/strlen-sse4.S:32
../sysdeps/x86_64/multiarch/strlen-sse4.S: File or Directory not found
in ../sysdeps/x86_64/multiarch/strlen-sse4.S
(gdb) bt
0 __strlen_sse42 () at ../sysdeps/x86_64/multiarch/strlen-sse4.S:32
1 0x00007ffff764fed8 in strdup_and_subst_obj () from /usr/lib/libgvc.so.5
2 0x00007ffff7650631 in make_label () from /usr/lib/libgvc.so.5
3 0x00007ffff765a6d1 in common_init_node_opt () from /usr/lib/libgvc.so.5
4 0x00007ffff309d700 in dot_init_node_edge () from
usr/lib/graphviz/libgvplugin_dot_layout.so.6
5 0x00007ffff309dcd8 in dot_layout () from /usr/lib/graphviz/libgvplugin_dot_layout.so.6
6 0x00007ffff7633a94 in gvLayoutJobs () from /usr/lib/libgvc.so.5
7 0x00007ffff7639425 in gvLayout () from /usr/lib/libgvc.so.5
8 0x0000000000400eef in main ()
我会说:我错过了对我的系统或我的可执行文件(Ubuntu 11.04 64位)的特定依赖关系将非常感谢任何建议:]
我目前正在使用:
gcc(Ubuntu / Linaro 4.5.2-8ubuntu4)4.5.2
编辑:
(gdb) info registers
rax 0x6380e0 6521056
rbx 0x62dc14 6478868
rcx 0x0 0
rdx 0x0 0
rsi 0x639770 6526832
rdi 0x0 0
rbp 0x639770 0x639770
rsp 0x7fffffffd358 0x7fffffffd358
r8 0x0 0
r9 0x0 0
r10 0x7fffffffd140 140737488343360
r11 0x7ffff764fda0 140737343978912
r12 0x62dc14 6478868
r13 0x639770 6526832
r14 0x0 0
r15 0x7ffff7671d85 140737344118149
rip 0x7ffff6d7d49f 0x7ffff6d7d49f
eflags 0x10246 [ PF ZF IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
分段错误通常是一个空指针解引用。 鉴于libc非常稳定,您很可能需要使用调试符号重新编译您的程序,并获取libgvc的Ubuntu软件包的调试版本。
“缺少strlen_sse4.S”只是调试器抱怨它无法找到该文件来为您提供崩溃站点的列表。 您只需要获取glibc源的副本来检查文件。
链接地址: http://www.djcxy.com/p/85911.html