什么?? ()在段错误中是什么意思?

时间:2013-09-01 11:56:54

标签: c segmentation-fault

我正在尝试用C编写一个echo服务器(说实话我只是从http://gnosis.cx/publish/programming/sockets.html复制代码)。无论如何,编译程序没有问题,但在运行它时会出现段错误。 gdb提供以下错误消息:

  

编程接收信号SIGSEGV,分段故障。   0xb7e46d5c在? ()来自/lib/i386-linux-gnu/libc.so.6

我的问题是:“??”是什么?意思?据我所知,失败的功能应该是名称。

2 个答案:

答案 0 :(得分:0)

glibc中没有可用的调试信息(因为它通常在没有调试信息的情况下编译)。所以你唯一能看到的就是函数的地址 - 但不是它的名字,因为它不为人所知。

但是,您可以使用调试信息编译程序(gcc选项:-ggdb)。然后你可以使用像gdb或valgrind这样的调试器来查看你的代码中的哪一行导致了段错误。

答案 1 :(得分:0)

尝试运行'bt'命令它将给出栈跟踪。段错误很可能在您的代码中,这是在libc.so.6上通知的。由于libc.so.6是优化的二进制文件,它没有调试符号所以你得到了.s。