这段时间,由于做的是Linux环境下的C++程序移植工作,总会碰到"段错误/已放弃"之类的问题,可以通过以下方式得到程序退出时的调用堆栈信息,方便错误的定位
- 打开生成core.xxx文件开关:设置ulimit -c unlimited,也可在环境变量中设置,以避免每次打开终端时都要进行设置;
- 执行linux下debug版本的应用程序: ./AppName;
- 程序出现"段错误/已放弃"而退出时,会在当前运行目录下产生 core.xxx文件(其中xxx是一串数字);
- 使用gdb运行core.xxx文件: gdb ./AppName core.xxx;
- 在gdb>下执行info stack查看最后的堆栈,从堆栈中得到最后退出时的信息。
更多操作详情查看: Linux下发生段错误时如何产生core文件