Как дебажить segfault на ideone?

351
20 января 2017, 07:52

http://ideone.com/f0239W

#include <stdio.h>
int main(void)
{
    char s[256];
    int i;
    while (scanf("%d", &i) == 1)
    {
        printf("Going to assign #%d\n", i);
        s[i] = 'Q';
    }
    printf("%d", strlen(s)); // Use s to eliminate optimizer
    return 0;
}
17
19
348
-3007
478999879

Выводится

Ошибка выполнения time: 0 memory: 2172 signal:11

stdout
Standard output is empty

Но очевидно, что ошибка не могла произойти на записи по индексам 17 и 19, т. е. должны быть выведены как минимум две строки. Почему их нет и какие ещё способы отладки segfault'ов на ideone существуют?

Answer 1

Надо после вывода добавить fflush(stdout):

http://ideone.com/PgNBUA

printf("Going to assign #%d\n", i);
fflush(stdout);
Going to assign #17
Going to assign #19
Going to assign #348
Going to assign #-3007
Going to assign #478999879
READ ALSO
Как работает aligned_storage() С++11

Как работает aligned_storage() С++11

Прочитал про aligned_storage() на cppreference, но так и не смог понятьОбъясните, пожалуйста, попроще

322
Очистить экспортированный из Google Docs HTML

Очистить экспортированный из Google Docs HTML

Кто-нибудь знает способы лучше tidy-html для очистки очень грязного HTML после выгрузки из Google Docs? Интересуют именно программные способы (желательно...

307
Всевозможные произведения в массиве

Всевозможные произведения в массиве

Не могу написать рабочий алгоритм нахождения всех возможных произведений элементов массиваТо есть к примеру у нас есть массив на n элементов

294
QCamera не работает вне IDE

QCamera не работает вне IDE

Использую Qt Creator, Qt 57

336