段错误(核心已转储)
时间: 2023-12-21 10:03:38 浏览: 153
浅析Linux中的core文件及调试方法
3星 · 编辑精心推荐
段错误(核心已转储)通常是由于程序访问了不属于它的内存地址或者访问了已经释放的内存地址,导致程序崩溃并生成core文件。以下是处理段错误的方法:
1. 生成core文件:
1.1 段错误的含义是程序访问了不属于它的内存地址或者访问了已经释放的内存地址,导致程序崩溃并生成core文件。
1.2 生成core文件的实际常见原因是为了调试程序,以便找出程序崩溃的原因。
2.1 使用命令 ulimit -a 查看core文件大小限制。
2.2 使用命令 ulimit -c 10240 (10240的位置可以是任意一个比较大的数字)或者ulimit -c unlimited来设置core文件大小限制。
2.3 编译的时候一定要加入-g选项,要不然在最后显示错误的时候只会显示错的地址,而不会显示错误的具体信息。
2.4 生成core的路径可以通过ulimit -c命令来查看或者设置。
2. 调试core:
3.1 基本命令:使用gdb命令来调试core文件,例如gdb a.out core。
3.2 附:GDB调试基本命令:可以使用bt命令来查看函数调用栈,使用p命令来查看变量的值,使用run命令来重新运行程序等。
3. 使用file命令查看core文件的具体信息:
可以使用命令file core,将core这个文件的具体信息给显示出来,命令最后会显示这个core文件是通过哪个文件产生的(假如是a.out)。
阅读全文