Я не могу заставить отладку работать.
Я использую версию REDHAWK 2.1.0 и пытаюсь создавать собственные компоненты.
Я могу заставить релизную версию работать и работать.
Вот что я делаю: я создал очень простой пользовательский компонент, который принимает входные данные, умножает их на два и отправляет в выходной поток, очень просто. Сейчас пытаюсь запустить этот компонент в режиме отладки в песочнице, мгновенный сбой. Единственное, что я вижу, это последняя запись стека вызовов, которая
boost::shared_ptr<rh_logger::Logger>::operator->() at shared_ptr.hpp:653
Если я решу запустить свой компонент без отладки, все будет работать. Он даже выполняет умножение.
Я понятия не имею, что происходит, по-видимому, этот класс интеллектуальных указателей выполняет проверку утверждения, чтобы проверить указатель, который он возвращает, и в конечном итоге дает сбой, потому что он равен нулю. Будучи оператором ->, это кажется довольно опасным. SIGSEGV - это ошибка, интересно, вызывает ли это BOOST_ASSERT при сбое?
Операционная система — CentOS 7 64 бит, работает на обычном процессоре Intel для настольных ПК, не помню какой.
Я установил REDHAWK, загрузив репозиторий, как указано в части 2.2 руководства REDHAWK.
Новый компонент был создан с помощью REDHAWK IDE (на основе eclipse), я выбрал C++ в качестве языка программы. Кажется, это общая библиотека, и когда я запускаю ее, запускается процесс под названием ComponentHost.
Я пытаюсь запустить компонент в песочнице, щелкнув правой кнопкой мыши компонент в меню «Проект» и выбрав «Отладка как — компонент в песочнице». Таким образом работает запуск компонента в режиме Release.