Как справиться с "разбиванием стека" - PullRequest
0 голосов
/ 07 июля 2019

Я задаю этот вопрос не потому, что не знаю, почему происходят стеки.Я видел этот вопрос раньше.

Я разрабатываю средство проверки OnlineJudge, поэтому мне нужно решить эту проблему.

В качестве примера рассмотрим следующий код оболочки:

{ ./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;
}

Выполнение указанного выше кода оболочки будет по-прежнему выводить **** stack smashing detected ***: ./a.out terminated* на консоли.Что мне делать, если я хочу перенаправить вывод этой ошибки?

...