当前位置:  技术问答>linux和unix

linux suse11遇到的信号问题以及一个coredump,想请教各路大神

    来源: 互联网  发布时间:2017-03-31

    本文导语:  话就不多说,直接上问题。 1、信号问题: fd_set rset; FD_ZERO(&rset); FD_SET(g_fdSocket, &rset); //设置接收连接超时时间 struct timeval waitTime; waitTime.tv_sec  = 1; waitTime.tv_usec = 0; select(g_fdSocket + 1, &rset, NULL, NULL, &waitTime); ...

话就不多说,直接上问题。
1、信号问题:

fd_set rset;
FD_ZERO(&rset);
FD_SET(g_fdSocket, &rset);
//设置接收连接超时时间
struct timeval waitTime;
waitTime.tv_sec  = 1;
waitTime.tv_usec = 0;
select(g_fdSocket + 1, &rset, NULL, NULL, &waitTime);

这一段代码,应该是会被阻塞,直到超时或者文件句柄g_fdSocket状态更新为对IO操作为ready。
本来工作也是正常的,但是假如我从控制台输入kill -15的时候,竟然会触发其终止阻塞。代码里面raise(15)与raise(8)却不会终止其阻塞。而且我代码里面如果使用了alarm闹钟,则闹钟时间到时也会终止其阻塞,而raise(SIGALRM)却不会终止。求解。


2、一个coredump的问题。一个网络多线程带信号处理的一个后台程序。我的程序运行得平常都很正常,但偶尔会coredump。用gdb查看堆栈信息的时候,却很郁闷的发现代码的最后一行运行在LOG("……");这样的代码行上,我怀疑日志出问题了,于是注释掉这句话,接着,花了很多遍重复,终于重现core的时候,发现更郁闷的事情发生了,core在了被注释掉的这句话的下一行。char mzchar[256];这样一个变量声明的语句上。错误的类型是11号信号段错误。coredump的这个方法是一个语法树里面的解析语法树的方法,因为一个表达式很长,语法树可能会层次很多,就是根树会调用这个方法去遍历解析他的儿子辈的。儿子当然也会调用这个方法去解析孙子辈分的,依次下去。这个方法是对象方法。还有一个信息就是这个coredump,我测很多遍,很大可能性是发生在程序退出的时候,被外部程序调用kill -9发送SIGKILL信号时发生的。我一直认为SIGKILL信号时不会发生coredump的。想请各路大神给点思路或者建议




|
问题1,raise()是发送signal给calling线程

raise(3)        Sends a signal to the calling thread.

kill(2)         Sends a signal to a specified process, to all members of a specified process group, or to all processes on the system.


你在select阻塞的时候,一定是另起了一个线程来raise() signal吧?
这样的话,你raise的信号是不会被select线程收到的,所以无法中断阻塞


问题2有可能是栈出问题了,因为你log函数参数要压栈,char mzchar[256]更是要分配栈空间
所以你要仔细地检查代码,是否有buff/数组溢出这样的问题




    
 
 

您可能感兴趣的文章:

  • 请教各位大神 linux安装的步骤!
  • Java做Web开发,想学习下Linux,不知用什么版本的好,望各位大神们指点
  • linux装载刚编译2.6.38.8内核,错误了, 那个大神帮帮小白
  • linux菜鸟,求大神指点,linux学的到底是什么?
  • 初学linux程序设计,有个程序找不到思路,跪求大神指点!
  • 求大神指点windows7上装了虚拟机 但虚拟机里装不了linux系统
  • 开始工作关于linux网络编程的工作,求大神推荐点这方面书籍
  • 大神们,帮忙如何查看linux系统下的开源软件是在什么环境下编写的?
  • 哪位大神给我说说怎么在个人电脑上安装2个系统 linux下安装 xp
  • Linux下Qt加载OpenCV静态链接库的问题,弄了好几天了还不会,求大神帮忙!
  • Linux环境下APACHE配置HTTP服务器的时候,Servername什么作用??求大神速来
  • 菜鸟学Linux 求大神请教
  • 懂linux 下 XML 文件解析的大神进来帮我看看
  • Linux socket AF_UNIX client端,连接连建立不起来,求大神!!!
  • 关于linux,tcphdr结构体未定义,求大神帮忙
  • linux下udp的recvfrom问题,大神,我需要你。。。
  • linux下的诡异coredump问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 向linux达人请教linux下5.1声道测试工具
  • 请教一下,如果想在linux下开发java,选哪个版本的linux好一点
  • 小弟想请教,如果现在不像装linux了怎样把linux的分区改回ntfs格式的?
  • 请教:linux启动盘和一张盘的linux有何区别?
  • 请教linux高手,在Linux
  • 在linux下面怎么安程序啊?我刚裝了一个 linux,下了一个迅雷安装程序,可是不知道怎么安装啊?真心请教。
  • 初次接触linux,关于linux 用户权限问题请教!
  • 请教linux 下的adsl拨号问题.
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 各位大狭!小弟初学Linux,请各位列举学Linux的网站,留下QQ,Email以向各位请教!!!多谢了!!!
  • 菜鸟请教Linux
  • 高手看过来:请教如何在移动硬盘上安装Linux?
  • 请教:如何在Linux下获得EDID信息
  • 请教风河 linux内核 如何配置使之支持xwindows?
  • 请教大家一下,linux运维方面的书应该读什么?
  • 请教:如何直接使用RedHat Linux 9的ISO文件安装Linux?
  • 我的linux装不上啊???请教高手
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • jquery iis7站长之家
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,