0
点赞
收藏
分享

微信扫一扫

Linux 下使用 gdb 定位 crash 位置


下面这一段代码会出现SEGV错误。

#include <stdio.h>

int foo(void)
{
	int *i = NULL;
	*i = 0;
}

int main(void)
{
	foo();
	return 0;
}




执行后如下:

$ ./foo
段错误 (核心已转储)

但是没有发现 core 文件。

需要设置一下。

ulimit -c unlimited

再次执行生成 core 文件。


使用 gdb 调试:

gdb ./foo ./core
Core was generated by `./foo'.
Program terminated with signal 11, Segmentation fault.
#0 0x00000000004004c4 in foo () at foo.c:6
6 *i = 0;

(gdb) bt
#0 0x00000000004004c4 in foo () at foo.c:6
#1 0x00000000004004d5 in main () at foo.c:11

举报

相关推荐

0 条评论