Boost logo

Boost :

From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2005-05-17 02:30:30


 
Rene Rivera wrote:

> >>Don't know is this will help at all.. But this is the stack
> trace for
> >>the crash for testwave built with CW-8.3:
> >
> >
> > Thanks a lot! And yes, I think it helped.
> > Could you please send me a stack backtrace again if it
> still crashes?
>
> Still crashes...

This I don't understand anymore. The code in question is:

    some_spirit_grammar g;
    boost::spirit::pt_parse(it, end, g);

the programm crashes inside pt_parse because of g == 0xcccccccc (destroyed
object), where pt_parse takes 'g' by const reference. Initially 'g' was
defined as a function local static instance, which I've removed now because
I had the suspicion CW8.x couldn't handle that correctly.

Any clues?
Regards Hartmut

>
> ==========
> >
> testwave.exe!?parse@?$@V?$scanner_at_V?$lex_iterator_at_V?$lex_token
> @U?$file_position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$al
> locator_at_D@2@@std@@@util_at_wave@boost@@@cpplexer_at_wave@boost@@@cpp
> lexer_at_wave@boost@@U?$scanner_policies_at_Uiteration_policy_at_spirit
> @boost@@U?$pt_match_(kleene_star
> * this=0xcccccccc, scanner & scan={...}) Line 57 + 0x3 C++
>
> testwave.exe!?parse@?$@V?$scanner_at_V?$lex_iterator_at_V?$lex_token
> @U?$file_position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$al
> locator_at_D@2@@std@@@util_at_wave@boost@@@cpplexer_at_wave@boost@@@cpp
> lexer_at_wave@boost@@U?$scanner_policies_at_Uiteration_policy_at_spirit
> @boost@@U?$pt_match_(sequence
> * this=0xcccccccc, scanner & scan={...}) Line 54 + 0x16 C++
>
> testwave.exe!?parse_main@?$@V?$scanner_at_V?$lex_iterator_at_V?$lex_
> token_at_U?$file_position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@
> V?$allocator_at_D@2@@std@@@util_at_wave@boost@@@cpplexer_at_wave@boost@
> @@cpplexer_at_wave@boost@@U?$scanner_policies_at_Uiteration_policy_at_s
> pirit_at_boost@@U?$pt_m(rule_base
> * this=0x00138078, scanner & scan={...}) Line 189 + 0x19 C++
>
> testwave.exe!?parse@?$@V?$scanner_at_V?$lex_iterator_at_V?$lex_token
> @U?$file_position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$al
> locator_at_D@2@@std@@@util_at_wave@boost@@@cpplexer_at_wave@boost@@@cpp
> lexer_at_wave@boost@@U?$scanner_policies_at_Uiteration_policy_at_spirit
> @boost@@U?$pt_match_(rule_base
> * this=0xcccccccc, scanner & scan={...}) Line 172 + 0x48 C++
>
> testwave.exe!?parse@?$@V?$scanner_at_V?$lex_iterator_at_V?$lex_token
> @U?$file_position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$al
> locator_at_D@2@@std@@@util_at_wave@boost@@@cpplexer_at_wave@boost@@@cpp
> lexer_at_wave@boost@@U?$scanner_policies_at_Uiteration_policy_at_spirit
> @boost@@U?$pt_match_(optional
> * this=0xcccccccc, scanner & scan={...}) Line 54 + 0x16 C++
>
> testwave.exe!?parse@?$@V?$scanner_at_V?$lex_iterator_at_V?$lex_token
> @U?$file_position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$al
> locator_at_D@2@@std@@@util_at_wave@boost@@@cpplexer_at_wave@boost@@@cpp
> lexer_at_wave@boost@@U?$scanner_policies_at_Uiteration_policy_at_spirit
> @boost@@U?$pt_match_(sequence
> * this=0xcccccccc, scanner & scan={...}) Line 54 + 0x16 C++
>
> testwave.exe!?do_parse_virtual@?$concrete_parser_at_U?$sequence_at_U
> ?$sequence_at_U?$alternative_at_U?$alternative_at_U?$chlit_at_W4token_id_at_w
> ave_at_boost@@@spirit_at_boost@@U?$pattern_and_at_W4token_category_at_wave
> @boost@@@util_at_wave@3@@spirit_at_boost@@U?$pattern_and_at_H@util_at_wave
> @3@@spirit_at_boost@@U?(concrete_parser
> * this=0x0012ee9c, scanner & scan={...}) Line 233 + 0x11 C++
>
> testwave.exe!?parse_main@?$@V?$scanner_at_V?$lex_iterator_at_V?$lex_
> token_at_U?$file_position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@
> V?$allocator_at_D@2@@std@@@util_at_wave@boost@@@cpplexer_at_wave@boost@
> @@cpplexer_at_wave@boost@@U?$scanner_policies_at_Uiteration_policy_at_s
> pirit_at_boost@@U?$pt_m(rule_base
> * this=0x00138070, scanner & scan={...}) Line 189 + 0x19 C++
>
> testwave.exe!?parse@?$@V?$scanner_at_V?$lex_iterator_at_V?$lex_token
> @U?$file_position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$al
> locator_at_D@2@@std@@@util_at_wave@boost@@@cpplexer_at_wave@boost@@@cpp
> lexer_at_wave@boost@@U?$scanner_policies_at_Uiteration_policy_at_spirit
> @boost@@U?$pt_match_(rule_base
> * this=0xcccccccc, scanner & scan={...}) Line 172 + 0x48 C++
>
> testwave.exe!?do_@?$@V?$tree_match_at_V?$lex_iterator_at_V?$lex_toke
> n_at_U?$file_position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$a
> llocator_at_D@2@@std@@@util_at_wave@boost@@@cpplexer_at_wave@boost@@@cp
> plexer_at_wave@boost@@V?$node_val_data_factory_at_Unil_t_at_spirit@boos
> t@@@spirit_at_4@Unil_t@(tree_match
> & result={...}, definition & def={...}, scanner & scan={...}) Line
> 262 + 0x16 C++
>
> testwave.exe!?grammar_parser_parse@?$@$0A_at_Upredefined_macros_g
> rammar_at_grammars@wave_at_boost@@U?$parser_context_at_Unil_t_at_spirit@bo
> ost@@@spirit_at_4@V?$scanner_at_V?$lex_iterator_at_V?$lex_token_at_U?$file
> _position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$allocator@
> D_at_2@@std@@@util_at_wave(grammar
> * self=0x0012f038, scanner & scan={...}) Line 281 + 0xf C++
>
> testwave.exe!?parse_main@?$@V?$scanner_at_V?$lex_iterator_at_V?$lex_
> token_at_U?$file_position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@
> V?$allocator_at_D@2@@std@@@util_at_wave@boost@@@cpplexer_at_wave@boost@
> @@cpplexer_at_wave@boost@@U?$scanner_policies_at_Uiteration_policy_at_s
> pirit_at_boost@@U?$pt_m(grammar
> * this=0x0012efcc, scanner & scan={...}) Line 55 + 0x1f C++
>
> testwave.exe!?parse@?$@V?$scanner_at_V?$lex_iterator_at_V?$lex_token
> @U?$file_position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$al
> locator_at_D@2@@std@@@util_at_wave@boost@@@cpplexer_at_wave@boost@@@cpp
> lexer_at_wave@boost@@U?$scanner_policies_at_Uiteration_policy_at_spirit
> @boost@@U?$pt_match_(grammar
> * this=0xcccccccc, scanner & scan={...}) Line 63 + 0x48 C++
>
> testwave.exe!?pt_parse@?$@V?$lex_iterator_at_V?$lex_token_at_U?$file
> _position_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$allocator@
> D_at_2@@std@@@util_at_wave@boost@@@cpplexer_at_wave@boost@@@cpplexer_at_wa
> ve_at_boost@@Upredefined_macros_grammar_at_grammars@34@@spirit_at_4@YA?
> AU?$tree_parse_info@(lex_iterator
> & first_={...}, lex_iterator & last={...}, parser & parser={...})
> Line 229 C++
>
> testwave.exe!boost::wave::grammars::predefined_macros_grammar_
> gen<class
> boost::wave::cpplexer::lex_iterator<class
> boost::wave::cpplexer::lex_token<struct
> boost::wave::util::file_position<class
> std::basic_string<char,struct std::char_traits<char>,class
> std::allocator<char> > > > > >::parse_predefined_macro( ??
> )(lex_iterator & first={...},
> lex_iterator & last={...}) Line 153 + 0x12 C++
>
> testwave.exe!?add_macro_definition@?$@V?$context_at_V?$__wrap_ite
> rator_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$allocator_at_D@2@
> @std@@PB$$CBD_at_std@@V?$lex_iterator_at_V?$lex_token_at_U?$file_positi
> on_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$allocator_at_D@2@@st
> d@@@util_at_wave@boost@(context
> & ctx=, basic_string & macrostring=, bool is_predefined=,
> language_support language=) Line 154 + 0x4a C++
> ==========
>
>
> --
> -- Grafik - Don't Assume Anything
> -- Redshift Software, Inc. - http://redshift-software.com
> -- rrivera/acm.org - grafik/redshift-software.com
> -- 102708583/icq - grafikrobot/aim - Grafik/jabber.org
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk