Boost logo

Boost :

Subject: [boost] null instruction ptr bugcheck in regexp
From: Heidi Zhou (heidi_zhou_at_[hidden])
Date: 2009-07-29 10:45:06


Hello!
 
I am using boost regexp to do string/expression match. I got several
dump files that have the same call stack when the crash happends. What
my code does is copying user buffer (containing string to be mached)
to an internal allocated buffer and then call boost regexp functions.

>From the dmp files, I can tell that register EBP is corrupted in the function boost::re_detail::abstract_
protected_call::execute.
Before this function, the value of EBP value is correct. Any idea what
the cause is? Is there any similar problem that has been known already?

At the end, it is the callstack when crash happened.

Looking forward to hearing from you.

Thank you in advance!

Heidi
==============================================================================
 
00000000()

  nlca_framework.dll!boost::re_detail::perl_matcher<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::allocator<boost::sub_match<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > > >,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::match_all_states() + 0x9a bytes C++

  nlca_framework.dll!boost::re_detail::perl_matcher<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::allocator<boost::sub_match<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > > >,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::match_startmark() + 0x194 bytes C++

  nlca_framework.dll!boost::re_detail::perl_matcher<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::allocator<boost::sub_match<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > > >,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::match_all_states() + 0x9a bytes C++

  nlca_framework.dll!boost::re_detail::perl_matcher<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::allocator<boost::sub_match<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > > >,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::match_prefix() + 0x39 bytes C++

  nlca_framework.dll!boost::re_detail::perl_matcher<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::allocator<boost::sub_match<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > > >,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::find_restart_any() + 0xe0 bytes C++

  nlca_framework.dll!boost::re_detail::abstract_protected_call::execute() + 0x41 bytes C++

  nlca_framework.dll!boost::re_detail::perl_matcher<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::allocator<boost::sub_match<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > > >,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::protected_call() + 0x48 bytes C++

  nlca_framework.dll!boost::re_detail::perl_matcher<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::allocator<boost::sub_match<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > > >,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::find() + 0xa bytes C++

  nlca_framework.dll!boost::regex_search<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::allocator<boost::sub_match<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > > >,wchar_t,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >() + 0xac bytes C++

      


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