Как определить место ошибки 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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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