【发布时间】:2014-11-18 04:56:10
【问题描述】:
我在 c++ 程序(redhead 4.9.1,std = c++11)中将 Boost 1.56.0 用于其 dijkstra_shortest_paths。不知何故,我在 auto_ptr.h 中不断收到以下分段错误错误:184
Program received signal SIGSEGV, Segmentation fault.
std::auto_ptr<boost::property<boost::edge_weight_t, double, boost::no_property> >::operator* (this=) at /opt/devl/optimize/gcc-4.9.1.RHEL6.4/include/c++/4.9.1/backward/auto_ptr.h:184
(gdb) bt
#0 std::auto_ptr<boost::property<boost::edge_weight_t, double, boost::no_property> >::operator* (this=) at /opt/devl/optimize/gcc-4.9.1.RHEL6.4/include/c++/4.9.1/backward/auto_ptr.h:184
#1 boost::detail::sep_<unsigned long, boost::property<boost::edge_weight_t, double, boost::no_property> >::get_property (this=) at /usr/include/boost/graph/detail/adjacency_list.hpp:278
#2 boost::detail::out_edge_iter<std::_List_iterator<boost::detail::sep_<unsigned long, boost::property<boost::edge_weight_t, double, boost::no_property> > >, unsigned long, boost::detail::edge_desc_impl<boost::directed_tag, unsigned long>, long>::dereference (this=) at /usr/include/boost/graph/detail/adjacency_list.hpp:152
#3 boost::iterator_core_access::dereference<boost::detail::out_edge_iter<std::_List_iterator<boost::detail::sep_<unsigned long, boost::property<boost::edge_weight_t, double, boost::no_property> > >, unsigned long, boost::detail::edge_desc_impl<boost::directed_tag, unsigned long>, long> > (f=...) at /usr/include/boost/iterator/iterator_facade.hpp:516
#4 boost::iterator_facade<boost::detail::out_edge_iter<std::_List_iterator<boost::detail::sep_<unsigned long, boost::property<boost::edge_weight_t, double, boost::no_property> > >, unsigned long, boost::detail::edge_desc_impl<boost::directed_tag, unsigned long>, long>, boost::detail::edge_desc_impl<boost::directed_tag, unsigned long>, boost::bidirectional_traversal_tag, boost::detail::edge_desc_impl<boost::directed_tag, unsigned long>, long>::operator* (this=) at /usr/include/boost/iterator/iterator_facade.hpp:634
#5 boost::breadth_first_visit<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, double, boost::no_property>, boost::no_property, boost::listS>, boost::d_ary_heap_indirect<unsigned long, 4ul, boost::iterator_property_map<unsigned long*, boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned long>, unsigned long, unsigned long&>, int*, std::less<int>, std::vector<unsigned long, std::allocator<unsigned long> > >, boost::detail::dijkstra_bfs_visitor<boost::dijkstra_visitor<boost::null_visitor>, boost::d_ary_heap_indirect<unsigned long, 4ul, boost::iterator_property_map<unsigned long*, boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned long>, unsigned long, unsigned long&>, int*, std::less<int>, std::vector<unsigned long, std::allocator<unsigned long> > >, boost::adj_list_edge_property_map<boost::directed_tag, double, double const&, unsigned long, boost::property<boost::edge_weight_t, double, boost::no_property> const, boost::edge_weight_t>, unsigned long*, int*, boost::closed_plus<int>, std::less<int> >, boost::two_bit_color_map<boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned long> > > (g=..., s=0, Q=..., vis=..., color=...) at /usr/include/boost/graph/breadth_first_search.hpp:77
#6 boost::dijkstra_shortest_paths_no_init<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, double, boost::no_property>, boost::no_property, boost::listS>, boost::dijkstra_visitor<boost::null_visitor>, unsigned long*, int*, boost::adj_list_edge_property_map<boost::directed_tag, double, double const&, unsigned long, boost::property<boost::edge_weight_t, double, boost::no_property> const, boost::edge_weight_t>, boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned long>, std::less<int>, boost::closed_plus<int>, int, boost::two_bit_color_map<boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned long> > > (g=..., s=0, predecessor=, distance=, weight=..., index_map=...,
compare=..., combine=..., zero=0, vis=..., color=...) at /usr/include/boost/graph/dijkstra_shortest_paths.hpp:332
#7 boost::dijkstra_shortest_paths<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, double, boost::no_property>, boost::no_property, boost::listS>, boost::dijkstra_visitor<boost::null_visitor>, unsigned long*, int*, boost::adj_list_edge_property_map<boost::directed_tag, double, double const&, unsigned long, boost::property<boost::edge_weight_t, double, boost::no_property> const, boost::edge_weight_t>, boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned long>, std::less<int>, boost::closed_plus<int>, int, int, boost::two_bit_color_map<boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned long> > > (g=..., s=0, predecessor=, distance=, weight=..., index_map=...,
compare=..., combine=..., inf=2147483647, zero=0, vis=..., color=...) at /usr/include/boost/graph/dijkstra_shortest_paths.hpp:383
#8 boost::dijkstra_shortest_paths<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, double, boost::no_property>, boost::no_property, boost::listS>, boost::dijkstra_visitor<boost::null_visitor>, unsigned long*, int*, boost::adj_list_edge_property_map<boost::directed_tag, double, double const&, unsigned long, boost::property<boost::edge_weight_t, double, boost::no_property> const, boost::edge_weight_t>, boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned long>, std::less<int>, boost::closed_plus<int>, int, int, int*, boost::vertex_distance_t, boost::bgl_named_params<unsigned long*, boost::vertex_predecessor_t, boost::no_property> > (g=..., s=0, predecessor=, distance=, weight=...,
index_map=..., compare=..., combine=..., inf=2147483647, zero=0, vis=...) at /usr/include/boost/graph/dijkstra_shortest_paths.hpp:353
#9 boost::detail::dijkstra_dispatch2<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, double, boost::no_property>, boost::no_property, boost::listS>, int*, boost::adj_list_edge_property_map<boost::directed_tag, double, double const&, unsigned long, boost::property<boost::edge_weight_t, double, boost::no_property> const, boost::edge_weight_t>, boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned long>, boost::bgl_named_params<int*, boost::vertex_distance_t, boost::bgl_named_params<unsigned long*, boost::vertex_predecessor_t, boost::no_property> > > (g=..., s=0, distance=, weight=..., index_map=..., params=...) at /usr/include/boost/graph/dijkstra_shortest_paths.hpp:423
#10 boost::detail::dijkstra_dispatch1<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, double, boost::no_property>, boost::no_property, boost::listS>, int*, boost::adj_list_edge_property_map<boost::directed_tag, double, double const&, unsigned long, boost::property<boost::edge_weight_t, double, boost::no_property> const, boost::edge_weight_t>, boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned long>, boost::bgl_named_params<int*, boost::vertex_distance_t, boost::bgl_named_params<unsigned long*, boost::vertex_predecessor_t, boost::no_property> > > (g=..., s=0, distance=, weight=..., index_map=..., params=...) at /usr/include/boost/graph/dijkstra_shortest_paths.hpp:455
#11 boost::dijkstra_shortest_paths<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, double, boost::no_property>, boost::no_property, boost::listS>, int*, boost::vertex_distance_t, boost::bgl_named_params<unsigned long*, boost::vertex_predecessor_t, boost::no_property> > (g=..., s=0, params=...)
at /usr/include/boost/graph/dijkstra_shortest_paths.hpp:473
如果您能帮助指出我做错了什么,将不胜感激。
【问题讨论】:
-
您是否知道忘记包含任何代码?
标签: boost