1.数组越界
这个是看到过最多的,所以当用core定位后发现,那行代码中存在某个数组,基本可以大致确定,问题是数组越界。有两种常见原因导致数组越界:
- 索引值没有初始化,在做基数排序并行化的时候,我某个索引表没有初始化,结果发生了数组越界;
- 索引终点end,和数组长度len傻傻分不清,这个主要依靠规范化自己的编程习惯去避免,例如我现在遇到区间,一定是基于[min, max)这种方式去考虑;
2.无限循环
有些情况下,无限循环也会导致segment fault,这个也遇到过。有几次使用循环,忘记递增迭代变量了,结果出现了segment fault。