Отлаживаю баг в одном проекте, часть которого на писана на С++. Проблема в segmentation fault(SIGSEGV), программа падает. Где падает я узнал
Вот тут, после этого вызова
m_listener->onClose(m_id) //Listener* m_listener
m_listener это virtual метод класса.
class Listener {
public:
virtual void onData(uint32_t id, TransportData data) = 0;
virtual void onClose(uint32_t id) = 0;
};
Сам объект класса TransportSession, в котором падает, создается через
m_session = std::make_shared<TransportSession>(0, m_service, std::move(m_socket), this);
Какие могут быть вообще причины возникновения segmentation fault? Удалилась ссылка на m_listener? Проверить указатель как я читал, в С++ никак не возможно.
Делал
if(m_listener != NULL)
if(m_listener != nullprt)
бесполезно