Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Отловить и обработать сигнал ошибки sigsegv - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Закрыть все переменные класса и добавить методы доступа к ним http://www.cyberforum.ru/cpp-beginners/thread1142128.html
Привет ребят помогите пожалуйста, создал класс открытый, нужно закрыть все переменные и создать функцию с помощью которой можно будет обратиться ко всем закрытым переменным. Заранее спасибо за...
C++ Заполнить матрицу случайными числами и отобразить симметрично главной диагонали. Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали. Помогите написать программу, пожалуйста http://www.cyberforum.ru/cpp-beginners/thread1142125.html
Создать функцию, тестирующую вхождение точки в шар C++
Три размера то, что излагает шар и точку в пространстве, структурно выявлять. В нее, входит, шар, который далась Точка, проверив функцию создавать и тестировать. На каком языке это написано? Если...
C++ Структура "Полином"
Алгебраическое понятие полином структурное внесение, которое характеризует. Функцию создавать следующий и тестировать: а) внедрять полиномы; б) выпускать полиномы; в) формировать полином.
C++ Создать анимацию идущего человека http://www.cyberforum.ru/cpp-beginners/thread1142048.html
В Visual C++ создать анимацию идущего человека. Помогите.
C++ Перевести с Паскаля на Си Структура элемента массива работник: фамилия, число, месяц и год рождения, пол. определить: ─ фамилия самого старшего мужчины; ─ все фамилии, начинающиеся с заданной буквы; ─ список людей,... подробнее

Показать сообщение отдельно
hamster28
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 41

Отловить и обработать сигнал ошибки sigsegv - C++

08.04.2014, 09:54. Просмотров 219. Ответов 0
Метки (Все метки)

пытаюсь отловить и обработать сигнал ошибки
в примере
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <windows.h>
#include <signal.h>    
 
void my_handler (int signum)
{
    MessageBoxA(NULL,"SIGFPE Error!","POSIX Signal",MB_ICONSTOP);
    signal(signum, SIG_DFL);
    exit(3);
}
 
int main ()
{
  void (*prev_handler)(int);
  prev_handler = signal (SIGSEGV, my_handler);
  raise(SIGSEGV); 
  return 0;
}
все в таком варианте работает

а вот если я не сам поднимаю сигнал, а просто пишу пару бредовых строк из другого примера
C++
1
2
3
4
5
6
7
8
int main ()
{
  void (*prev_handler)(int);
  prev_handler = signal (SIGSEGV, my_handler);
  int* p = 0x00000000;
  *p = 10; 
  return 0;
}
то ошибка вылетает, а в обработку my_handler не заходит...
подскажите, что не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru