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 КБ]
Скачиваний: 115
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Ср 04 май, 2016 2:37 pm 
Не в сети

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


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

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


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

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

Код:
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
Сообщения: 732
Гм, я думаю сигналхэндлер вызывается в другом стеке. Согласен, неоднозначно. Посмотрим, что ответят вам в рассылке.


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

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


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

Зарегистрирован: Чт 14 май, 2009 6:56 pm
Сообщения: 732
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]


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

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