Как определить место ошибки SIGNAL 11 в этой программе на C++C++

Программы на C++. Форум разработчиков
Anonymous
Как определить место ошибки SIGNAL 11 в этой программе на C++

Сообщение Anonymous »

Я запускаю многопоточную программу на C++ в системе Linux
(ядро 2.6.23). Мой код скомпилирован с использованием G++ версии 4.7.4.
Я добавил следующий код для обнаружения ошибок сегментации:

Код: Выделить всё

void segFaultHandler(int sig)
{
void *array[10];
size_t size;

size = backtrace(array, 10);
fprintf(stderr, "Error: signal %d:\n", sig);
backtrace_symbols_fd(array, size, STDERR_FILENO);
exit(1);
}
И на главном:

Код: Выделить всё

main()
{
signal(SIGSEGV, segFaultHandler);

try {

// Program code here...

catch(const std::exception& ex)
{
std::cerr 

Подробнее здесь: [url]https://stackoverflow.com/questions/34139308/how-to-identify-a-signal-11-error-location-in-this-c-program[/url]

Вернуться в «C++»