[Boost-bugs] [Boost C++ Libraries] #2436: [spirit2] segfault upon grammar instantiation

Subject: [Boost-bugs] [Boost C++ Libraries] #2436: [spirit2] segfault upon grammar instantiation
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2008-10-25 23:55:04


#2436: [spirit2] segfault upon grammar instantiation
-----------------------------------------+----------------------------------
 Reporter: vallentin_at_[hidden] | Owner: djowel
     Type: Bugs | Status: new
Milestone: Boost 1.37.0 | Component: spirit
  Version: Boost Development Trunk | Severity: Showstopper
 Keywords: |
-----------------------------------------+----------------------------------
 I recently switched from g++ 4.0 to g++ 4.2 and now get this warning. I am
 using the 1.37 beta.

 {{{
 ***/boost-1_37/boost/spirit/home/support/nonterminal/detail/nonterminal_fcall.hpp:53:
 warning: missing braces around initializer for
 'boost::spirit::parameterized_nonterminal<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<const
 char*, std::basic_string<char, std::char_traits<char>,
 std::allocator<char> > >, void ()(std::basic_string<char,
 std::char_traits<char>, std::allocator<char> >),
 vast::bro::bro_white_space<__gnu_cxx::__normal_iterator<const char*,
 std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
>, boost::fusion::unused_type>,
 boost::fusion::vector<boost::phoenix::actor<boost::spirit::local_var<0> >,
 boost::fusion::void_, boost::fusion::void_, boost::fusion::void_,
 boost::fusion::void_, boost::fusion::void_, boost::fusion::void_,
 boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >'
 }}}

 Later on, my application segfaults. Here is the stack trace:

 {{{
 Program received signal EXC_BAD_ACCESS, Could not access memory.
 Reason: 13 at address: 0x00000000
 0x8fe18b42 in __dyld_misaligned_stack_error ()
 (gdb) bt
 #0 0x8fe18b42 in __dyld_misaligned_stack_error ()
 #1 0xbfffdf98 in ?? ()
 #2 0x036f2993 in std::_Rb_tree_insert_and_rebalance ()
 #3 0x00109c5b in std::_Rb_tree<std::string, std::pair<std::string const,
 boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t,
 vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t,
 vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t,
 vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t,
 vast::meta::vm_time_t, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_> >, std::_Select1st<std::pair<std::string
 const, boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t,
 vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t,
 vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t,
 vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t,
 vast::meta::vm_time_t, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_> > >, std::less<std::string>,
 std::allocator<std::pair<std::string const,
 boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t,
 vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t,
 vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t,
 vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t,
 vast::meta::vm_time_t, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_> > > >::_M_insert (this=0xbfffdf34, __x=0x0,
 __p=0x3802b30, __v=@0xbfffdf94) at
 /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/spirit/home/qi/nonterminal/detail/rule.hpp:116
 #4 0x00109e10 in std::_Rb_tree<std::string, std::pair<std::string const,
 boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t,
 vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t,
 vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t,
 vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t,
 vast::meta::vm_time_t, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_> >, std::_Select1st<std::pair<std::string
 const, boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t,
 vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t,
 vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t,
 vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t,
 vast::meta::vm_time_t, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_> > >, std::less<std::string>,
 std::allocator<std::pair<std::string const,
 boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t,
 vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t,
 vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t,
 vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t,
 vast::meta::vm_time_t, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_> > > >::_M_insert_unique (this=0xbfffdf34,
 __v=@0xbfffdf94) at
 /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/spirit/home/qi/nonterminal/detail/rule.hpp:116
 #5 0x00109e88 in std::map<std::string,
 boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t,
 vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t,
 vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t,
 vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t,
 vast::meta::vm_time_t, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_>, std::less<std::string>,
 std::allocator<std::pair<std::string const,
 boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t,
 vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t,
 vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t,
 vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t,
 vast::meta::vm_time_t, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_, boost::detail::variant::void_,
 boost::detail::variant::void_> > > >::insert (this=0xbfffdf34,
 __x=@0xbfffdf94) at
 /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/spirit/home/qi/nonterminal/detail/rule.hpp:116
 #6 0x0012633a in vast::meta::vast_basic_type::vast_basic_type
 (this=<incomplete type>) at
 /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/spirit/home/qi/nonterminal/detail/rule.hpp:116
 #7 0x00126e75 in vast::meta::vast_type<__gnu_cxx::__normal_iterator<char
 const*, std::string> >::vast_type (this=<incomplete type>,
 sym_type=<incomplete type>) at
 /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/spirit/home/qi/nonterminal/detail/rule.hpp:116
 #8 0x0012849c in
 vast::meta::vast_grammar<__gnu_cxx::__normal_iterator<char const*,
 std::string> >::vast_grammar (this=0xbfffe73c, events=@0xbfffe928) at
 /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/spirit/home/qi/nonterminal/detail/rule.hpp:116
 #9 0x00145def in vast::meta::Specification::load (this=<incomplete type>,
 filename=<incomplete type>) at
 /opt/local/include/gcc42/c++/bits/stl_algobase.h:401
 #10 0x0005d4eb in main (argc=<incomplete type>, argv=<incomplete type>) at
 /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/thread/detail/thread.hpp:543
 }}}

 Let me know if you need more context from my application, I am not sure
 where to start from here.

 Best regards,

 Matthias

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/2436>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:49:59 UTC