用C++编写的程序在运行出错时,系统会生成core dump文件,如果系统没有生成可以通过命令
ulimit -c unlimited使系统生成产生core文件,这样就可以利用core文件查看程序是在哪一行出现错误了,具体的方法如下:
1、程序编译时要加-g选项,保证debug信息生成在应用程序当中
2、如果运行过程中出错,执行下面命令查看程序哪里出现错误:
gdb a.out core举例来说:
#include <stdio.h>
int main(int argc, char** argv) {
int* p = NULL;
*p = 10;
}
上面的程序会运行出错,用g++ -g编译后,生成a.out,运行a.out,产生core文件,当执行gdb a.out core时,gdb会自动停止在出错的位置。
本文介绍了如何通过C++程序生成的core dump文件来定位运行时错误的具体位置。包括使用gdb工具结合core文件和-g编译选项进行调试的具体步骤。
776

被折叠的 条评论
为什么被折叠?



