Могу ли я бросить исключение из обработчика сигнала SIGSEGV так напримет( пример не работает поэтому и спрашиваю )
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
//#include <bits/sigaction.h>
#include <ucontext.h>
#include <iostream>
using namespace std;
//typedef void (*sa_sigaction)(int, siginfo_t *, void *);
void sigsegv_handler( int f_Sig, siginfo_t* f_SigInfo, void* f_Context )
{
cout << "PID = " << getpid() << endl;
std::cerr << "Segmentation violation " << std::endl;
throw 62;
}
int main( int ac, char* av[] )
{
struct sigaction snew;
struct sigaction sold;
snew.sa_sigaction = sigsegv_handler;
sigemptyset( &snew.sa_mask );
snew.sa_flags = SA_SIGINFO;
if( sigaction( SIGSEGV, &snew, &sold ) < 0 ){
std::cerr << "Set signal routine is faled."<< std::endl;
return 1;
}
else {
try{
cout << "PID = " << getpid() << endl;
(*( int* )0 ) = 0;
}
catch( int i ){
std::cerr << i << std::endl;
}
catch(...){
std::cerr << "To caught exception.." << std::endl;
}
}
sigaction( SIGSEGV, &sold, &snew );
return 0;
}

Ответ на:
комментарий
от klalafuda

Ответ на:
комментарий
от alexsy


Ответ на:
комментарий
от alexsy


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум C++ и исключение abi::__forced_unwind (2017)
- Форум signal (2005)
- Форум C++/exceptions - деление на ноль не ловиццо, почему? (2006)
- Форум C++ iostream::failbit (2005)
- Форум libdl и обратные ссылки (2017)
- Форум Багофича эксепшенов с++ ? (2013)
- Форум [C++] Перегрузка new и delete в производном классе (2011)
- Форум Про сигналы и исключения (2013)
- Форум [C++][boost::signals2] Каковы сигнатуры операторов operator () в плюсах? (2010)
- Форум Помогите разобраться с сигналами (2003)