老年人编程系列 - 999种coredump的方法

简介: 本文持续更新SIGSEGV进程试图写不能写的内存char *p = 0;*p = 1;segfault at 0 ip 0000000000400541 sp 00007ffc4eba93e0 error 6 in a.

本文持续更新

SIGSEGV

进程试图写不能写的内存

char *p = 0;
*p = 1;

segfault at 0 ip 0000000000400541 sp 00007ffc4eba93e0 error 6 in a.out[400000+1000]

进程试图读不能读的内存

char *p = 0;
char c = *p;

segfault at 0 ip 00000000004004fd sp 00007ffe321ef0f0 error 4 in a.out[400000+1000]

double free

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

Error in `./a.out': double free or corruption (fasttop): 0x0000000000a42010

======= Backtrace: =========
/lib64/libc.so.6(+0x81499)[0x7fbe685b9499]
./a.out[0x4005ab]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7fbe6855a445]
./a.out[0x4004b9]
======= Memory map: ========
00400000-00401000 r-xp 00000000 fd:11 56369896 /mnt/situo.cly/yq/a.out
...
[heap]
7fbe64000000-7fbe64021000 rw-p 00000000 00:00 0
...
Aborted (core dumped)

SIGABRT

abort();
assert(0);

Aborted (core dumped)

SIGFPE

int x = 3 / 0;

Floating point exception (core dumped)

相关文章
|
2月前
|
机器人 程序员 C++
Scratch3.0——助力新进程序员理解程序(五、控制)
Scratch3.0——助力新进程序员理解程序(五、控制)
37 0
|
2月前
|
存储 机器人 程序员
Scratch3.0——助力新进程序员理解程序(六、监测)
Scratch3.0——助力新进程序员理解程序(六、监测)
42 0
|
6月前
|
算法 程序员 编译器
当程序遇上困难:程序调试的艺术(VS)
当程序遇上困难:程序调试的艺术(VS)
43 0
|
6月前
|
Unix Shell Linux
一篇文章教会你什么是Linux进程控制(下)
3.3 进程等待示例 #include <stdio.h> #include <unistd.h> #include <stdlib.h>
|
6月前
|
存储 消息中间件 Linux
一篇文章教会你什么是Linux进程控制(上)
进程创建 1.fork函数初识 在Linux上一篇文章进程概念详解我们提到了在linux中fork函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。
|
8月前
|
存储 Java
java内存机制详解,老年人也看得懂
java内存机制详解,老年人也看得懂
53 0
|
11月前
|
NoSQL Linux API
Linux应用开发之coredump
程序崩溃往往是最不好调试的,如果是很容易复现的现象,可能我们还可以比较容易分析出问题所在。但是对于那种需要几天,或者在某种特殊条件下才能触发的现象。我们总不能一直守着,所以这个时候就需要系统帮我们把崩溃的一些信息记录下来,也就是接下来要提到的coredump。
kill 进程时遇到的一件有意思的事情
kill 进程时遇到的一件有意思的事情
|
缓存 Ubuntu Linux
Linux进程和计划任务(把心留给在乎你的人吧)(二)
Linux进程和计划任务(把心留给在乎你的人吧)(二)
86 0
Linux进程和计划任务(把心留给在乎你的人吧)(二)
|
缓存 安全 Unix
Linux进程和计划任务(把心留给在乎你的人吧)(一)
Linux进程和计划任务(把心留给在乎你的人吧)(一)
114 0
Linux进程和计划任务(把心留给在乎你的人吧)(一)