赞
踩
橙色
信号是 Linux进程间通信的最古老的方式之一,是事件发生时对进程的通知机制,有时也称之为软件中断,它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理某一个突发事件。
产生信号的几种方式:
使用信号的两个主要目的:
查看系统定义的信号列表:kill -l
前31个为标准信号(会用到),34-64为预定义好的信号(基本用不到)
查看进程的详细信息: man 7 signal
信号的5中默认处理动作:
SIGKILL和SIGSTOP信号不能被捕捉、阻塞或者忽略,只能执行默认动作。
首先利用ulimit -a
命令查看core file size文件是否为零,如果像下图一样为0,则通过ulimit -c 1024
进行修改
修改后结果如图:
core.c文件内容如下:
#include <stdio.h>
#include <string.h>
int main() {
char buf[100];
strcpy(buf, "hello");
return 0;
}
在上图中通过gdb开始调试a后,直接run,就能显示错误
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。