Реклама на сайте Advertise with us

Отладка с++ приложения под линуксом

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Самый добрый бегемот

С нами с 24.06.03
Сообщения: 954
Рейтинг: 574

Ссылка на сообщениеДобавлено: 18/10/12 в 14:13       Ответить с цитатойцитата 

Приветствую.
Такой вопрос: есть ли какие-нибудь инструменты, которые могут помочь с откладкой многопоточного с++ приложения, которое работает на сервере без гуи?
Смысл в том, что без нагрузки работает норм, под нагрузкой (много коннектов входящих на приложение) падает с seg fault. Уже месяц починить не можем =(
Заранее спасибо

0
 



С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430

Ссылка на сообщениеДобавлено: 18/10/12 в 14:38       Ответить с цитатойцитата 

gdb smail54.gif

6
 

Web Developer С++

С нами с 25.11.01
Сообщения: 859
Рейтинг: 759

Ссылка на сообщениеДобавлено: 18/10/12 в 15:16       Ответить с цитатойцитата 

Скорей всего вы где-то используете нереентрантные функции.
Часто эту ошибку не просто повторить чтоб продебагить. Я в таких случаях сначала ищу где падает с помощью спец. дебагов. Потом ставлю дебаги по переменным, чтоб выяснить почему.

Софт для вебмастеров, криптобот, программинг (C++/PHP), партнерка: https://dfservice.com/ru/

5
 

Самый добрый бегемот

С нами с 24.06.03
Сообщения: 954
Рейтинг: 574

Ссылка на сообщениеДобавлено: 18/10/12 в 16:47       Ответить с цитатойцитата 

gdb попробуем
А что имелось ввиду под спец дебагом? Что-то типа записи лога при вызове каждой функциии и потом смотреть в какой упало?

0
 

Web Developer С++

С нами с 25.11.01
Сообщения: 859
Рейтинг: 759

Ссылка на сообщениеДобавлено: 18/10/12 в 19:25       Ответить с цитатойцитата 

atrius писал:
А что имелось ввиду под спец дебагом? Что-то типа записи лога при вызове каждой функциии и потом смотреть в какой упало?

Типа того.
Объявляешь глобальную переменную. Расставляешь по коду каждые несколько строчек код, который будет записывать номер строки в коде в эту переменную. Перехватываешь сигналы, при 11 пишешь значение этой переменной в файл. В файле будет видно до какой строки выполнилась программа прежде чем упасть.
Выводить что-то на экран или открывать и писать файлы в потоках не используя синхронизацию нельзя.

Софт для вебмастеров, криптобот, программинг (C++/PHP), партнерка: https://dfservice.com/ru/

0
 



С нами с 15.07.11
Сообщения: 3090
Рейтинг: 198

Ссылка на сообщениеДобавлено: 18/10/12 в 23:16       Ответить с цитатойцитата 

Жесть какая описана! icon_smile.gif

Всё делается не так.
Компилируешь программу с опцией -g.
Включаешь core dump'ы - ulimit -s 9999999 у меня на ubuntu
Ждешь пока прога упадёт и отбросит кору
запускаешь
gdb program-executable core-dump-file-path
> backtrace
выведет тебе на каком месте прога упала, можно посмотреть параметры вызовов функций и значения всех переменных!

1
 

Web Developer С++

С нами с 25.11.01
Сообщения: 859
Рейтинг: 759

Ссылка на сообщениеДобавлено: 18/10/12 в 23:31       Ответить с цитатойцитата 

uname_: а под виндами так можно?

Софт для вебмастеров, криптобот, программинг (C++/PHP), партнерка: https://dfservice.com/ru/

0
 



С нами с 15.07.11
Сообщения: 3090
Рейтинг: 198

Ссылка на сообщениеДобавлено: 19/10/12 в 12:36       Ответить с цитатойцитата 

DF™ писал:
uname_: а под виндами так можно?

Без понятия если честно, под винды на плюсах не довелось писать. Но вроде как коредампов не предусмотрено под винды, видимо есть что-то другое.

То что я написал это только для юниксов.

0
 



С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430

Ссылка на сообщениеДобавлено: 19/10/12 в 12:53       Ответить с цитатойцитата 

DF™ писал:
uname_: а под виндами так можно?

Так вопрос был про юникс же я так понял раз надо серверно и без гуев icon_smile.gif
удобее gdb я ничего не юзал еще

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »