某代码的表现一直正常, 但经历一个正常的修改后, 程序就core dump了, 经定位, 原因是: 原来代码埋了个地雷, 一直没有被调用触发, 新增的正常代码刚好触发了这个雷, 故core dump. 那具体原因是什么呢? 且看简单的demo代码:

#include <iostream>
#include <vector>
using namespace std;

int main()
{
	vector<int> v;
	v.push_back(1);
	v.push_back(2);
	v.clear();
	
	cout << v[0] << endl;
	return 0;
}
       对空vector进行不当操作, 于是就core dump了, 用gdb分析也很简单, 故不赘述。


      本文主要是说“地雷式”core dump, 另外说了操作stl要小心。






本文转载:CSDN博客