core dump分析

CORE DUMP原因                               2020-11-24

链接:https://blog.csdn.net/lixiaogang_theanswer/article/details/80301624  

           https://www.cnblogs.com/kex1n/p/6972046.html

 

信号 起源 默认行为 含义
SIGHUP POSIX Term 控制终端挂起
SIGINT ANSI Term 键盘输入以终端进程(ctrl + C)
SIGQUIT POSIX Core 键盘输入使进程退出(Ctrl + \)
SIGILL ANSI Core 非法指令
SIGTRAP POSIX Core 断点陷阱,用于调试
SIGABRT ANSI Core 进程调用abort函数时生成该信号
SIGIOT 4.2BSD Core 和SIGABRT相同
SIGBUS 4.2BSD Core 总线错误,错误内存访问
SIGFPE ANSI Core 浮点异常
SIGKILL POSIX Term 终止一个进程。该信号不可被捕获或被忽略
SIGUSR1 POSIX Term 用户自定义信号之一
SIGSEGV ANSI Core 非法内存段使用
SIGUSR2 POSIX Term 用户自定义信号二
SIGPIPE POSIX Term 往读端关闭的管道或socket链接中写数据
SIGALRM POSIX Term 由alarm或settimer设置的实时闹钟超时引起
SIGTERM ANSI Term 终止进程。kill命令默认发生的信号就是SIGTERM
SIGSTKFLT Linux Term 早期的Linux使用该信号来报告数学协处理器栈错误
SIGCLD System V Ign 和SIGCHLD相同
SIGCHLD POSIX Ign 子进程状态发生变化(退出或暂停)
SIGCONT POSIX Cont 启动被暂停的进程(Ctrl+Q)。如果目标进程未处于暂停状态,则信号被忽略
SIGSTOP POSIX Stop 暂停进程(Ctrl+S)。该信号不可被捕捉或被忽略
SIGTSTP POSIX Stop 挂起进程(Ctrl+Z)
SIGTTIN POSIX Stop 后台进程试图从终端读取输入
SIGTTOU POSIX Stop 后台进程试图往终端输出内容
SIGURG 4.3 BSD Ign socket连接上接收到紧急数据
SIGXCPU 4.2 BSD Core 进程的CPU使用时间超过其软限制
SIGXFSZ 4.2 BSD Core 文件尺寸超过其软限制
SIGVTALRM 4.2 BSD Term 与SIGALRM类似,不过它只统计本进程用户空间代码的运行时间
SIGPROF 4.2 BSD Term 与SIGALRM 类似,它同时统计用户代码和内核的运行时间
SIGWINCH 4.3 BSD Ign 终端窗口大小发生变化
SIGPOLL System V Term 与SIGIO类似
SIGIO 4.2 BSD Term IO就绪,比如socket上发生可读、可写事件。因为TCP服务器可触发SIGIO的条件很多,故而SIGIO无法在TCP服务器中用。SIGIO信号可用在UDP服务器中,但也很少见
SIGPWR System V Term 对于UPS的系统,当电池电量过低时,SIGPWR信号被触发
SIGSYS POSIX Core 非法系统调用
SIGUNUSED   Core 保留,通常和SIGSYS效果相同
  • signal 6 - SIGABRT

1. free多次

char *p = malloc(100);  
free(p);  
free(p);

2. fclose 多次

// fclose 内部调用 free  
FILE *fp = fopen("test.txt", "wb+");  
printf("%p\n", fp);  
fclose(fp);  
printf("%p\n", fp);  
fclose(fp);  
printf("%p\n", fp);  

 

 

  • signal 11 - SIGSEGV

1. 引用空指针成员

struct Hello *p = NULL;  
printf("%d\n", p->a);

2. fclose 空指针

// fclose 内部引用 FILE 成员  
FILE *fp = NULL;  
fclose(fp);  

 

跟引用空指针成员一致。

上一篇:Linux命令行参数前加双杠--,单杠-和不加杠-的区别


下一篇:为Android本地图像创建照片库应用程序