Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 28.05.2020
Сообщений: 3
1

сегфолт

28.05.2020, 13:49. Показов 1281. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
добрый день, возможно ли как-нибудь обработать сегфолт и продолжить выполнение программы? очень срочно нужно, помогите пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2020, 13:49
Ответы с готовыми решениями:

Опять сегфолт, на этот раз при работе со структурами
Продолжаю пилить свою программу и вот опять наткнулся на сегфолт при её выполнении. Код, который...

Сегфолт при попытке вызвать memcpy
Почему тут вылетает сегфолт? #include <stdio.h> #include <stdlib.h> #include <string.h> int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
28.05.2020, 13:55 2
Лучший ответ Сообщение было отмечено christina05 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <setjmp.h>
#include <signal.h>
 
jmp_buf buf;
 
void handler (int);
void segfault ();
 
int main (int argc, char *argv[], char *envp[]) {
    signal(SIGSEGV,handler);
    int code = setjmp(buf);
    if (!code) segfault();
    else fprintf(stderr,"\nBypass.");
    return 0;
}
 
void handler (int SIGNAL) {
    if (SIGNAL == SIGSEGV) fprintf(stderr,"Segmentation fault.");
    longjmp(buf,SIGNAL);
}
 
void segfault () {
    *(int*)0 = 1;
}
1
0 / 0 / 0
Регистрация: 28.05.2020
Сообщений: 3
28.05.2020, 13:59  [ТС] 3
огромное спасибо)
0
28.05.2020, 13:59
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru