缺少strlen_sse4.S会导致分段错误

时间:2011-08-29 13:50:52

标签: c graphviz sse

我正在编写一个用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-Bit)的特定依赖关系。非常感谢任何建议:]

我目前正在使用:

  

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

1 个答案:

答案 0 :(得分:2)

分段错误通常是空指针解除引用。鉴于libc非常可靠,您很可能希望使用调试符号重新编译程序,并获取libgvc的Ubuntu包的调试变体。

“Missing strlen_sse4.S”只是调试器抱怨它无法找到该文件来为您提供崩溃站点的列表。您只需获取glibc源的副本即可检查该文件。