Mam dość skomplikowany wielu gwintowany aplikacji (serwer), który od czasu do czasu katastrofy spowodowane assert:shared_ptr Twierdzenie px = 0 nie powiodło
/usr/include/boost/smart_ptr/shared_ptr.hpp:418: T* boost::shared_ptr< <template-parameter-1-1> >::operator->() const [with T = msg::Player]: Assertion `px != 0' failed.
nie byłem w stanie określić przyczynę i był zastanawiasz się czy to jest problem z boost :: shared_ptr czy to ja?
Próbowałem g ++ 4.4.3-4ubuntu5 i llvm-g ++ (GCC) 4.2.1 z optymalizacją i bez optymalizacji oraz libboost1.40-dev (= 1.40.0-4ubuntu4).
wielowątkowymi błędy są trudno wskazać. Ponieważ jesteś na Linuksie, nie ma powodu, aby nie używać Valgrind - pomoże ci to znacznie znaleźć błąd. – nos
Używam valgrind obszernie i otrzymuję błędy zera (z memcheck) aż do wystąpienia assert. Nadal uczę się interpretować komunikaty o błędach drd, ponieważ większość z nich (obciążenie konfliktem/przechowywanie w typach boolean/integer) nie wydaje się problemem. – Horacio