Stacktrace
Moderator: Moderators
Stacktrace
Um... ok, this is a stupid question probably, but how do I turn a stacktrace into something useful for debugging? The current SVN builds of Spring crash after approx. 5-10 minutes of play, using AAI 0.81, and I dunno whether it's AAI or Spring that's really causing the problem. Both program's logs tell me nothing useful, aside from the stacktraces, which I am assuming will help point to what's causing the problems.
Neato
Ok, so this is the result:
CCobFile::CCobFile(CFileHandler&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)
C:/taspring_trunk/rts/Sim/Units/COB/CobFile.cpp:189
CGameSetup::Init(char*, int)
C:/taspring_trunk/rts/System/TdfParser.h:152
TdfParser::GetAllValues(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
C:/taspring_trunk/C:/mingw/lib/gcc/mingw32/4.1.1/include/c++/ext/new_allocator.h:94
CGame::Draw()
C:/taspring_trunk/rts/Game/Game.cpp:1778
CGuiHandler::DrawCentroidCursor()
C:/taspring_trunk/rts/Game/UI/GuiHandler.cpp:3832
void TdfParser::GetDef<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
C:/taspring_trunk/C:/mingw/lib/gcc/mingw32/4.1.1/include/c++/bits/basic_string.h:233
boost::spirit::impl::concrete_parser<boost::spirit::contiguous<boost::spirit::action<boost::spirit::positive<boost::spirit::chset<char> >, boost::spirit::ref_value_actor<std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::spirit::push_back_action> > >, boost::spirit::scanner<char*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t>::do_parse_virtual(boost::spirit::scanner<char*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> > const&) const
C:/taspring_trunk/mingwlibs/include/boost/detail/sp_counted_base_gcc_x86.hpp:0
boost::spirit::impl::concrete_parser<boost::spirit::contiguous<boost::spirit::action<boost::spirit::positive<boost::spirit::chset<char> >, boost::spirit::ref_value_actor<std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::spirit::push_back_action> > >, boost::spirit::scanner<char*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t>::clone() const
C:/taspring_trunk/mingwlibs/include/boost/spirit/core/composite/actions.hpp:78
boost::spirit::impl::concrete_parser<boost::spirit::kleene_star<boost::spirit::alternative<boost::spirit::init_closure_parser<boost::spirit::rule<boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::closure_context<tdf_grammar::section_closure>, boost::spirit::nil_t>, phoenix::tuple<phoenix::actor<phoenix::value<TdfParser::TdfSection*> >, phoenix::nil_t, phoenix::nil_t, phoenix::nil_t> >, boost::spirit::rule<boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t, boost::spirit::nil_t> > >, boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t>::do_parse_virtual(boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> > const&) const
C:/taspring_trunk/mingwlibs/include/boost/spirit/core/non_terminal/impl/rule.ipp:0
std::vector<S3DOPrimitive, std::allocator<S3DOPrimitive> >::_M_insert_aux(__gnu_cxx::__normal_iterator<S3DOPrimitive*, std::vector<S3DOPrimitive, std::allocator<S3DOPrimitive> > >, S3DOPrimitive const&)
C:/taspring_trunk/C:/mingw/lib/gcc/mingw32/4.1.1/include/c++/bits/stl_construct.h:121
gnu_exception_handler@4
J:/MinGW/home/Sherpya/stage/mingw-runtime-3.10/crt1.c:119
gnu_exception_handler@4
J:/MinGW/home/Sherpya/stage/mingw-runtime-3.10/crt1.c:116
rc
??:0
... what does this mean?

Ok, so this is the result:
CCobFile::CCobFile(CFileHandler&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)
C:/taspring_trunk/rts/Sim/Units/COB/CobFile.cpp:189
CGameSetup::Init(char*, int)
C:/taspring_trunk/rts/System/TdfParser.h:152
TdfParser::GetAllValues(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
C:/taspring_trunk/C:/mingw/lib/gcc/mingw32/4.1.1/include/c++/ext/new_allocator.h:94
CGame::Draw()
C:/taspring_trunk/rts/Game/Game.cpp:1778
CGuiHandler::DrawCentroidCursor()
C:/taspring_trunk/rts/Game/UI/GuiHandler.cpp:3832
void TdfParser::GetDef<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
C:/taspring_trunk/C:/mingw/lib/gcc/mingw32/4.1.1/include/c++/bits/basic_string.h:233
boost::spirit::impl::concrete_parser<boost::spirit::contiguous<boost::spirit::action<boost::spirit::positive<boost::spirit::chset<char> >, boost::spirit::ref_value_actor<std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::spirit::push_back_action> > >, boost::spirit::scanner<char*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t>::do_parse_virtual(boost::spirit::scanner<char*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> > const&) const
C:/taspring_trunk/mingwlibs/include/boost/detail/sp_counted_base_gcc_x86.hpp:0
boost::spirit::impl::concrete_parser<boost::spirit::contiguous<boost::spirit::action<boost::spirit::positive<boost::spirit::chset<char> >, boost::spirit::ref_value_actor<std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::spirit::push_back_action> > >, boost::spirit::scanner<char*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t>::clone() const
C:/taspring_trunk/mingwlibs/include/boost/spirit/core/composite/actions.hpp:78
boost::spirit::impl::concrete_parser<boost::spirit::kleene_star<boost::spirit::alternative<boost::spirit::init_closure_parser<boost::spirit::rule<boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::closure_context<tdf_grammar::section_closure>, boost::spirit::nil_t>, phoenix::tuple<phoenix::actor<phoenix::value<TdfParser::TdfSection*> >, phoenix::nil_t, phoenix::nil_t, phoenix::nil_t> >, boost::spirit::rule<boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t, boost::spirit::nil_t> > >, boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t>::do_parse_virtual(boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skip_parser_iteration_policy<boost::spirit::alternative<boost::spirit::alternative<boost::spirit::space_parser, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::strlit<char const*>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::confix_parser<boost::spirit::strlit<char const*>, boost::spirit::kleene_star<boost::spirit::anychar_parser>, boost::spirit::alternative<boost::spirit::eol_parser, boost::spirit::end_parser>, boost::spirit::unary_parser_category, boost::spirit::non_nested, boost::spirit::is_lexeme> >, boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> > const&) const
C:/taspring_trunk/mingwlibs/include/boost/spirit/core/non_terminal/impl/rule.ipp:0
std::vector<S3DOPrimitive, std::allocator<S3DOPrimitive> >::_M_insert_aux(__gnu_cxx::__normal_iterator<S3DOPrimitive*, std::vector<S3DOPrimitive, std::allocator<S3DOPrimitive> > >, S3DOPrimitive const&)
C:/taspring_trunk/C:/mingw/lib/gcc/mingw32/4.1.1/include/c++/bits/stl_construct.h:121
gnu_exception_handler@4
J:/MinGW/home/Sherpya/stage/mingw-runtime-3.10/crt1.c:119
gnu_exception_handler@4
J:/MinGW/home/Sherpya/stage/mingw-runtime-3.10/crt1.c:116
rc
??:0
... what does this mean?
Those are probably places in code which were executing when the crash happened. Using that and the corresponding source, it's possible to track down the reasons of that crash.
For example, this:
means that Spring crashed when executing this (line numbers added for ease of use):
Of course, line numbers depend on what revision of code was used. I used 3706 for that example, it's possible you used something different so line numbers don't match. Which exactly svn revision was used?
For example, this:
Code: Select all
CCobFile::CCobFile(CFileHandler&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)
C:/taspring_trunk/rts/Sim/Units/COB/CobFile.cpp:189
Code: Select all
187 // Also add the weapon aiming stuff
188 for (int i = 0; i < COB_MaxWeapons; ++i) {
189 char buf[15];
190 sprintf(buf, "Weapon%d", i + 1);
191 string weapon(buf);
Re: Stacktrace
Argh wrote:The current SVN builds of Spring crash after approx. 5-10 minutes of play,
Nope, stacktraceTranslator is only valid for 0.74b3 build (it should give a warning for that I think).
Basically you can not do anything with stacktraces in SVN builds ATM, because they're shipped without debugging symbols. (You'd need to recompile to get debugging symbols...)