我有一个相当复杂的多线程应用程序(服务器)不时会崩溃由于断言:shared_ptr的断言PX = 0失败
/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.
我一直无法查明原因,是想知道这是一个问题与boost :: shared_ptr或它是我?
我试过g ++ 4.4.3-4ubuntu5和llvm-g ++(GCC)4.2.1,并且没有优化和优化,libboost1.40-dev(= 1.40.0-4ubuntu4)。
多线程错误很难查明。既然你在linux上,没有理由不使用valgrind--它会帮助你很大程度地发现错误。 – nos 2010-08-22 12:00:31
我正在广泛使用valgrind,并且在断言发生之前我得到了零错误(使用memcheck)。我仍然在学习如何解释drd错误消息,因为它们中的大多数(布尔型/整型类型的冲突加载/存储)似乎不是问题。 – Horacio 2010-08-22 22:07:16