如何处理“堆栈粉碎”

时间:2019-07-07 04:51:04

标签: gcc segmentation-fault

我问这个问题不是因为我不知道为什么发生堆栈粉碎。我以前见过this question

我正在开发OnlineJudge检查器,因此我必须处理此问题。

以下面的shell代码为例:

{ ./a.out; } 2>err

可以像这样处理其他常见的运行时错误,例如分段错误(非法指针)和浮点异常(1 / 0,1%0)。

但是,请考虑以下C代码:

int main() {
    int a[2];
    a[0] = 1;
    a[1] = 2;
    a[2] = 3;
    return 0;
}

运行上面的Shell代码仍将在控制台上输出**** stack smashing detected ***: ./a.out terminated*。如果我想重定向此错误输出该怎么办?

0 个答案:

没有答案