日期:2014-05-16  浏览次数:20685 次

socket编程报错
   最近做一个移植的项目,用socket通信,加调试信息,打印buf的信息,没什么问题,都是些统计信息,但是还是报Segmentation fault (core dumped)错误,而且提示“socket timeout”。请教各位大侠,怎么调试Segmentation fault (core dumped)错误?还有“socket timeout”是什么原因引起的?

------解决方案--------------------
阻塞一下Sigpipe
------解决方案--------------------
引用:
阻塞一下Sigpipe

SIGPIPE是不会生成core的吧。为了一劳永逸我建议把gdb搞起来。
------解决方案--------------------
一般Segmentation fault的原因是:内存访问越界;指针使用不当;多线程中对会被多个线程同时访问的全局数据进行读写时未加锁保护;
根据这些查查代码,调试方法可以搜搜
------解决方案--------------------
检查缓冲区申请和初始化
------解决方案--------------------

------解决方案--------------------
socket timeout 不是什么大问题。 segment fault一般是内存越界了。估计你申请的buffer在处理的时候有异常的情况发生。
------解决方案--------------------
引用:
引用:
引用:
引用:
阻塞一下Sigpipe
SIGPIPE是不会生成core的吧。为了一劳永逸我建议把gdb搞起来。
有人提醒我用gdb调试,但是不会用gdb。任务赶得紧,没时间学gdb。
周围也没人会用gdb调试。

就你遇到的这个问题,结合core文件,gdb进去,就一句backtrace就能看到死哪了。