GDB寻找segmentation fault位置

一、在当前文件夹下生成指定二进制文件的core文件

查看允许core文件空间大小:

ulimit -c

修改core文件空间为无限大:

ulimit -c unlimited

让core文件生成在当前目录下:

sudo bash -c 'echo core.%e.%p > /proc/sys/kernel/core_pattern'

再执行一次二进制就会在当前文件下生成core文件

二、GDB调试过程

1. 增加-g选项重新编译二进制

g++ -g test.cpp -o test

2.根据二进制和core文件进入gdb

gdb core.test.2900 test

比较简单的情况下可能直接就显示fault的位置:
在这里插入图片描述
还可以用where去做查询:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gls_nuaa/article/details/131501377
今日推荐