BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: Вс 01 май, 2016 8:35 pm 
Не в сети

Зарегистрирован: Пт 06 июн, 2014 6:15 am
Сообщения: 26
Господа товарищи! Кому не сложно - проверьте вывод приаттаченного исходника у себя и отпишите с версией bsd.
У меня весь стек до signalHandler всегда затерт... Вот вывод на моей машине (FreeBSD 10.2):
Код:
   
stack dump [0]  0x40d4e5 <_Z9stackdumpPKc+0x85> at /ara/devel/sandbox/new/cpp/Release/cpp
stack dump [1]  0x40dafd <_Z13signalHandleriP9__siginfoPv+0x3d> at /ara/devel/sandbox/new/cpp/Release/cpp
stack dump [2]  0x801f30997 <pthread_sigmask+0x497> at /lib/libthr.so.3
stack dump [3]  0x801f301a8 <pthread_getspecific+0xdd8> at /lib/libthr.so.3


Вложения:
main.cpp [3.46 КБ]
Скачиваний: 133
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Ср 04 май, 2016 2:37 pm 
Не в сети

Зарегистрирован: Чт 14 май, 2009 6:56 pm
Сообщения: 735
То же самое, только двух последних нет. Что-то не так? Нормальное поведение, вроде бы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Ср 04 май, 2016 5:35 pm 
Не в сети

Зарегистрирован: Пт 06 июн, 2014 6:15 am
Сообщения: 26
А какая версия ОС?
Должна быть инфа о foo\foo2 в стеке...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт 05 май, 2016 3:30 pm 
Не в сети

Зарегистрирован: Чт 14 май, 2009 6:56 pm
Сообщения: 735
ОС:

Код:
FreeBSD 10.2-PRERELEASE #4 r286761: Sat Aug 15 03:01:24 MSK 2015


Что касается
Цитата:
Должна быть инфа о foo\foo2 в стеке...

то я что-то не уверен. Откуда инфа?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт 05 май, 2016 6:23 pm 
Не в сети

Зарегистрирован: Пт 06 июн, 2014 6:15 am
Сообщения: 26
Ну а как еще кодеру узнать где в коде произошел сбой конкретно?
Сейчас получается для любой ошибки в любом месте стек будет выглядеть одинаково... (из 4 вышеозначенных строк).
В линуксе (любом) правильно отображается - весь стек раскручивается до места, где произошло исключение.
Я просто думал это у меня в сборке косяк какой-то...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт 05 май, 2016 7:37 pm 
Не в сети

Зарегистрирован: Чт 14 май, 2009 6:56 pm
Сообщения: 735
Гм, я думаю сигналхэндлер вызывается в другом стеке. Согласен, неоднозначно. Посмотрим, что ответят вам в рассылке.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт 05 май, 2016 7:56 pm 
Не в сети

Зарегистрирован: Пт 06 июн, 2014 6:15 am
Сообщения: 26
Странно что thread_id один и тот же, поэтому не понятно откуда взялся другой стек..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пт 06 май, 2016 12:42 pm 
Не в сети

Зарегистрирован: Чт 14 май, 2009 6:56 pm
Сообщения: 735
LLVM в случае крэша умеет показывать правильный красивый бэктрейс. Можете глянуть как там сделано для FreeBSD. Это где-то в lib/Support было, когда я последний раз там был.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пт 07 июл, 2017 3:07 am 
Не в сети

Зарегистрирован: Пт 06 июн, 2014 6:15 am
Сообщения: 26
В freebsd-hackers@freebsd.org ответили чуваку с похожим вопросом:

Signal handlers use a special stack frame that libexecinfo is too
simple to understand. To get a stack from a signal handler, you might
want to use libunwind instead.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Google [Bot], Google Feedfetcher


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика