Boost logo

Boost Users :

From: Stephen Torri (storri_at_[hidden])
Date: 2007-03-26 10:01:42


I am receiving a segmentation fault in boost::iterator_property_map for
the following code.

        // Prepare Data
        infrastructure::Graph_Base::Data_Map_t m_data_map;

        // Process Graph
        visitor::Graph_Visitor graph_visitor_ref ( *graph_ptr,
&m_data_map );

        // Segmentation fault starts here
        boost::breadth_first_search
            ( graph_ptr->get_Graph(), // Grabs the adjacency list
reference
              graph_ptr->get_Vertex ( 1 ), // Grabs the first vertex
descriptor
              boost::visitor ( graph_visitor_ref ) ); // Call visitor
(line 218)

Here is the backtrace:

#0 0x00d343ff in boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type, std::allocator<boost::default_color_type> > >, boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS, boost::setS, boost::directedS, boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::vertex_name_t, boost::shared_ptr<libreverse::infrastructure::Component>, boost::no_property> >, boost::no_property, boost::no_property, boost::listS>, unsigned int, unsigned int const&, boost::vertex_index_t>, boost::default_color_type, boost::default_color_type&>::operator[] (this=0xbff21818, v=0x4) at /usr/include/boost/property_map.hpp:349
#1 0x00d3445a in boost::put<boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type, std::allocator<boost::default_color_type> > >, boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS, boost::setS, boost::directedS, boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::vertex_name_t, boost::shared_ptr<libreverse::infrastructure::Component>, boost::no_property> >, boost::no_property, boost::no_property, boost::listS>, unsigned int, unsigned int const&, boost::vertex_index_t>, boost::default_color_type, boost::default_color_type&>, boost::default_color_type&, void*, boost::default_color_type> (pa=@0xbff21818, k=0x4, v=@0xbff217ec)
    at /usr/include/boost/property_map.hpp:319
#2 0x00d3b4d0 in boost::breadth_first_search<boost::adjacency_list<boost::setS, boost::setS, boost::directedS, boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::vertex_name_t, boost::shared_ptr<libreverse::infrastructure::Component>, boost::no_property> >, boost::no_property, boost::no_property, boost::listS>, boost::queue<void*, std::deque<void*, std::allocator<void*> > >, libreverse::visitor::Graph_Visitor, boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type, std::allocator<boost::default_color_type> > >, boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS, boost::setS, boost::directedS, boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::vertex_name_t, boost::shared_ptr<libreverse::infrastructure::Component>, boost::no_property> >, boost::no_property, boost::no_property, boost::listS>, unsigned int, unsigned int const&, boost::vertex_index_t>, boost::default_color_type, boost::default_color_type&> > (g=@0x81e70c8, s=0x81e6c10, Q=@0xbff21830, vis=
      {<boost::bfs_visitor<boost::null_visitor>> = {m_vis = {<> = {<No data fields>}, <No data fields>}}, m_graph_ref = @0x81e70c8, m_data_map = 0xbff21970}, color=
      {<boost::put_get_helper<boost::default_color_type&,boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type, std::allocator<boost::default_color_type> > >, boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS, boost::setS, boost::directedS, boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::vertex_name_t, boost::shared_ptr<libreverse::infrastructure::Component>, boost::no_property> >, boost::no_property, boost::no_property, boost::listS>, unsigned int, const unsigned int&, boost::vertex_index_t>, boost::default_color_type, boost::default_color_type&> >> = {<No data fields>}, iter = {_M_current = 0x81ec4b0}, index = {<boost::put_get_helper<const unsigned int&,boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS, boost::setS, boost::directedS, boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::vertex_name_t, boost::shared_ptr<libreverse::infrastructure::Component>, boost::no_property> >, boost::no_property, boost::no_property, boost::listS>, unsigned int, const unsigned int&, boost::vertex_index_t> >> = {<No data fields>}, <No data fields>}})
    at /usr/include/boost/graph/breadth_first_search.hpp:97
#3 0x00d3b5f0 in boost::detail::bfs_helper<boost::adjacency_list<boost::setS, boost::setS, boost::directedS, boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::vertex_name_t, boost::shared_ptr<libreverse::infrastructure::Component>, boost::no_property> >, boost::no_property, boost::no_property, boost::listS>, boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type, std::allocator<boost::default_color_ty---Type <return> to continue, or q <return> to quit---
pe> > >, boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS, boost::setS, boost::directedS, boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::vertex_name_t, boost::shared_ptr<libreverse::infrastructure::Component>, boost::no_property> >, boost::no_property, boost::no_property, boost::listS>, unsigned int, unsigned int const&, boost::vertex_index_t>, boost::default_color_type, boost::default_color_type&>, libreverse::visitor::Graph_Visitor, libreverse::visitor::Graph_Visitor, boost::graph_visitor_t, boost::no_property> (g=@0x81e70c8, s=0x81e6c10, color=
      {<boost::put_get_helper<boost::default_color_type&,boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type, std::allocator<boost::default_color_type> > >, boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS, boost::setS, boost::directedS, boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::vertex_name_t, boost::shared_ptr<libreverse::infrastructure::Component>, boost::no_property> >, boost::no_property, boost::no_property, boost::listS>, unsigned int, const unsigned int&, boost::vertex_index_t>, boost::default_color_type, boost::default_color_type&> >> = {<No data fields>}, iter = {_M_current = 0x81ec4b0}, index = {<boost::put_get_helper<const unsigned int&,boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS, boost::setS, boost::directedS, boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::vertex_name_t, boost::shared_ptr<libreverse::infrastructure::Component>, boost::no_property> >, boost::no_property, boost::no_property, boost::listS>, unsigned int, const unsigned int&, boost::vertex_index_t> >> = {<No data fields>}, <No data fields>}}, vis=
      {<boost::bfs_visitor<boost::null_visitor>> = {m_vis = {<> = {<No data fields>}, <No data fields>}}, m_graph_ref = @0x81e70c8, m_data_map = 0xbff21970}, params=@0xbff219ac) at /usr/include/boost/graph/breadth_first_search.hpp:185
#4 0x00d3b7c0 in boost::detail::bfs_dispatch<boost::detail::error_property_not_found>::apply<boost::adjacency_list<boost::setS, boost::setS, boost::directedS, boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::vertex_name_t, boost::shared_ptr<libreverse::infrastructure::Component>, boost::no_property> >, boost::no_property, boost::no_property, boost::listS>, libreverse::visitor::Graph_Visitor, boost::graph_visitor_t, boost::no_property> (g=@0x81e70c8, s=0x81e6c10,
    params=@0xbff219ac) at /usr/include/boost/graph/breadth_first_search.hpp:226
#5 0x00d3b84a in boost::breadth_first_search<boost::adjacency_list<boost::setS, boost::setS, boost::directedS, boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::vertex_name_t, boost::shared_ptr<libreverse::infrastructure::Component>, boost::no_property> >, boost::no_property, boost::no_property, boost::listS>, libreverse::visitor::Graph_Visitor, boost::graph_visitor_t, boost::no_property> (g=@0x81e70c8, s=0x81e6c10, params=@0xbff219ac)
    at /usr/include/boost/graph/breadth_first_search.hpp:255
#6 0x00d2fa8c in libreverse::api::Reverse_Impl::process_Graph (this=0xbff21aeb, graph_ptr=@0xbff21a30, val=@0xbff21a28)
    at Reverse_Impl.cpp:218

I checked the graph_ptr and it appears to be initialized correctly. At
frame #0, the value of 'v' is 0x4. Is there a way to print out more
information to figure out why I am getting a segfault?

Am I asking my questions in the right place? I say that because I have
posted quite a few messages recently with no one responding.

Stephen


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