Boost logo

Boost Users :

Subject: [Boost-users] [BGL] Boost 1.45 implicit graph A* example crashes
From: Szymon Gatner (szymon.gatner_at_[hidden])
Date: 2010-11-27 20:07:26


Hi,

I just tried running example included with BGL astar_maze.cpp and it
crashes every time I do that.

Call stack (VC++ 2008 SP1):

> astar_maze.exe!boost::unordered_detail::hash_table<boost::unordered_detail::set<vertex_hash,std::equal_to<boost::array<unsigned int,2> >,std::allocator<boost::array<unsigned int,2> > > >::find_iterator(boost::unordered_detail::hash_bucket<std::allocator<boost::array<unsigned int,2> > > * bucket=0xcfec9914, const boost::array<unsigned int,2> & k=0x002cf0d8) Line 55 + 0x3 bytes C++
         astar_maze.exe!boost::unordered_detail::hash_table<boost::unordered_detail::set<vertex_hash,std::equal_to<boost::array<unsigned
int,2> >,std::allocator<boost::array<unsigned int,2> > > >::find(const
boost::array<unsigned int,2> & k=0x002cf0d8) Line 583 + 0x10
bytes C++
         astar_maze.exe!boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > >::find(const
boost::array<unsigned int,2> & k=0x002cf0d8) Line 400 + 0x13
bytes C++
         astar_maze.exe!boost::set_contains<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> >,boost::array<unsigned
int,2> >(const boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > > & s={...}, const
boost::array<unsigned int,2> & x=0x002cf0d8) Line 21 + 0x23 bytes C++
         astar_maze.exe!boost::is_not_in_subset<boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > >
>::operator()<boost::array<unsigned int,2> >(const
boost::array<unsigned int,2> & x=0x002cf0d8) Line 60 + 0xf bytes C++
         astar_maze.exe!boost::filter_iterator<boost::is_not_in_subset<boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > >
>,boost::transform_iterator<boost::detail::grid_graph_vertex_at<boost::grid_graph<2,unsigned
int,unsigned int> >,boost::counting_iterator<unsigned
int,boost::use_default,boost::use_default>,boost::use_default,boost::use_default>
>::satisfy_predicate() Line 100 + 0x41 bytes C++
         astar_maze.exe!boost::filter_iterator<boost::is_not_in_subset<boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > >
>,boost::transform_iterator<boost::detail::grid_graph_vertex_at<boost::grid_graph<2,unsigned
int,unsigned int> >,boost::counting_iterator<unsigned
int,boost::use_default,boost::use_default>,boost::use_default,boost::use_default>
>::filter_iterator<boost::is_not_in_subset<boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > >
>,boost::transform_iterator<boost::detail::grid_graph_vertex_at<boost::grid_graph<2,unsigned
int,unsigned int> >,boost::counting_iterator<unsigned
int,boost::use_default,boost::use_default>,boost::use_default,boost::use_default>
>(boost::is_not_in_subset<boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > > > f={...},
boost::transform_iterator<boost::detail::grid_graph_vertex_at<boost::grid_graph<2,unsigned
int,unsigned int> >,boost::counting_iterator<unsigned
int,boost::use_default,boost::use_default>,boost::use_default,boost::use_default>
x={...}, boost::transform_iterator<boost::detail::grid_graph_vertex_at<boost::grid_graph<2,unsigned
int,unsigned int> >,boost::counting_iterator<unsigned
int,boost::use_default,boost::use_default>,boost::use_default,boost::use_default>
end_={...}) Line 60 C++
         astar_maze.exe!boost::vertices<boost::grid_graph<2,unsigned
int,unsigned int>,boost::keep_all,boost::is_not_in_subset<boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > > > >(const
boost::filtered_graph<boost::grid_graph<2,unsigned int,unsigned
int>,boost::keep_all,boost::is_not_in_subset<boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > > > > & g={...}) Line
285 + 0x5e bytes C++
         astar_maze.exe!boost::astar_search<boost::filtered_graph<boost::grid_graph<2,unsigned
int,unsigned int>,boost::keep_all,boost::is_not_in_subset<boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > > >
>,euclidean_heuristic,astar_goal_visitor,boost::associative_property_map<boost::unordered_map<boost::array<unsigned
int,2>,boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<std::pair<boost::array<unsigned int,2> const
,boost::array<unsigned int,2> > > >
>,boost::shared_array_property_map<double,boost::grid_graph_index_map<boost::grid_graph<2,unsigned
int,unsigned int>,boost::array<unsigned int,2>,unsigned int>
>,boost::associative_property_map<boost::unordered_map<boost::array<unsigned
int,2>,double,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<std::pair<boost::array<unsigned int,2> const ,double>
> > >,boost::static_property_map<double>,boost::grid_graph_index_map<boost::grid_graph<2,unsigned
int,unsigned int>,boost::array<unsigned int,2>,unsigned
int>,boost::shared_array_property_map<enum
boost::default_color_type,boost::grid_graph_index_map<boost::grid_graph<2,unsigned
int,unsigned int>,boost::array<unsigned int,2>,unsigned int>
>,std::less<double>,boost::closed_plus<double>,double,double>(const
boost::filtered_graph<boost::grid_graph<2,unsigned int,unsigned
int>,boost::keep_all,boost::is_not_in_subset<boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > > > > & g={...},
boost::array<unsigned int,2> s=0x002cf660, euclidean_heuristic
h={...}, astar_goal_visitor vis={...},
boost::associative_property_map<boost::unordered_map<boost::array<unsigned
int,2>,boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<std::pair<boost::array<unsigned int,2> const
,boost::array<unsigned int,2> > > > > predecessor={...},
boost::shared_array_property_map<double,boost::grid_graph_index_map<boost::grid_graph<2,unsigned
int,unsigned int>,boost::array<unsigned int,2>,unsigned int> >
cost={...}, boost::associative_property_map<boost::unordered_map<boost::array<unsigned
int,2>,double,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<std::pair<boost::array<unsigned int,2> const ,double>
> > > distance={...}, boost::static_property_map<double> weight={...},
boost::grid_graph_index_map<boost::grid_graph<2,unsigned int,unsigned
int>,boost::array<unsigned int,2>,unsigned int> index_map={...},
boost::shared_array_property_map<enum
boost::default_color_type,boost::grid_graph_index_map<boost::grid_graph<2,unsigned
int,unsigned int>,boost::array<unsigned int,2>,unsigned int> >
color={...}, std::less<double> compare=less,
boost::closed_plus<double> combine={...}, double
inf=1.7976931348623157e+308, double zero=0.00000000000000000) Line
287 + 0x10 bytes C++
         astar_maze.exe!boost::astar_search<boost::filtered_graph<boost::grid_graph<2,unsigned
int,unsigned int>,boost::keep_all,boost::is_not_in_subset<boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > > >
>,euclidean_heuristic,astar_goal_visitor,enum
boost::graph_visitor_t,boost::bgl_named_params<boost::associative_property_map<boost::unordered_map<boost::array<unsigned
int,2>,double,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<std::pair<boost::array<unsigned int,2> const ,double>
> > >,enum boost::vertex_distance_t,boost::bgl_named_params<boost::associative_property_map<boost::unordered_map<boost::array<unsigned
int,2>,boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<std::pair<boost::array<unsigned int,2> const
,boost::array<unsigned int,2> > > > >,enum
boost::vertex_predecessor_t,boost::bgl_named_params<boost::static_property_map<double>,enum
boost::edge_weight_t,boost::no_property> > > >(const
boost::filtered_graph<boost::grid_graph<2,unsigned int,unsigned
int>,boost::keep_all,boost::is_not_in_subset<boost::unordered_set<boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<boost::array<unsigned int,2> > > > > & g={...},
boost::array<unsigned int,2> s=0x002cf8e8, euclidean_heuristic
h={...}, const boost::bgl_named_params<astar_goal_visitor,enum
boost::graph_visitor_t,boost::bgl_named_params<boost::associative_property_map<boost::unordered_map<boost::array<unsigned
int,2>,double,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<std::pair<boost::array<unsigned int,2> const ,double>
> > >,enum boost::vertex_distance_t,boost::bgl_named_params<boost::associative_property_map<boost::unordered_map<boost::array<unsigned
int,2>,boost::array<unsigned
int,2>,vertex_hash,std::equal_to<boost::array<unsigned int,2>
>,std::allocator<std::pair<boost::array<unsigned int,2> const
,boost::array<unsigned int,2> > > > >,enum
boost::vertex_predecessor_t,boost::bgl_named_params<boost::static_property_map<double>,enum
boost::edge_weight_t,boost::no_property> > > > & params={...}) Line
341 + 0x267 bytes C++
         astar_maze.exe!maze::solve() Line 191 + 0xa2 bytes C++
         astar_maze.exe!main(int argc=1, const char * * argv=0x00882610)
Line 305 + 0xb bytes C++
         astar_maze.exe!__tmainCRTStartup() Line 586 + 0x19 bytes C
         astar_maze.exe!mainCRTStartup() Line 403 C
         kernel32.dll!7593eccb()
         [Frames below may be incorrect and/or missing, no symbols loaded for
kernel32.dll]
         ntdll.dll!7779d24d()
         ntdll.dll!7779d45f()


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net