signal系列之SIGQUIT

来源:互联网 发布:手机音乐转调软件 编辑:程序博客网 时间:2024/05/21 12:40
  1. 看下面的 demo:


编译链接并运行的结果如下:



  1. SIGQUIT 信号对应的 signo = 03,表示用户从键盘按下quit键,即 ctrl+\ ,进程在收到 SIGQUIT 退出时会产生 core 文件,在这个意义上类似于一个程序错误信号。
  1. 从编译运行的结果来看,在SIGQUIT信号处理函数中将该信号的处理函数恢复为默认的处理函数之后,在产生 SIGQUIT 信号之后退出了,但也产生了一个 coredump 文件core。
(1)但一般情况下,ubuntu 默认不创建core文件,需要用命令 ulimit -c unlimited ,从而允许产生core dump且core问阿金大小不受限制,然后在可执行文件的同一目录下可以找到了。但当前设置的 ulimit 只对当前会话有效,若想系统均有效,则需要进行如下的设置:在 /etc/profile 中加入以下一行
ulimit -c unlimited

(2)那么如何使用 core 文件查看程序的错误信息呢?
编译: gcc -Wall -Werror -o test -g test.c

(3)调用 gdb ./test core 来查看程序的错误信息
如下截图所示,提示是因为 SIGQUIT 信号产生的 core dump












原创粉丝点击