|
Boost Users : |
From: Marty Eaves (Marty.Eaves_at_[hidden])
Date: 2006-06-15 11:16:05
Hello,
I am having an issue using the regex library. I am developing in VC7
and this issue occurs with both Boost 1.33.0 and 1.33.1. I have
recently tried to start retrieving capture information in the regex
matches by using the match_result and sub_match classes. In order to
use these classes, the compile flag BOOST_REGEX_MATCH_EXTRA is required
to be turned on (enabled in user.hpp). With the library is built with
this flag on, I will get the following trap when the method calling
regex_match() returns.
An unhandled exception of type 'System.NullReferenceException' occurred
in tg12.exe
Additional information: Object reference not set to an instance of an
object
This exception appears to occur in the cleanup logic of the
~match_results() destructor. I have yet to make any changes to the code
to use the match_results object. In other words, the code I am using
worked previously without the BOOST_REGEX_MATCH_EXTRA flag enabled. Are
there any compiler options required?
The stack trace is below.
Thanks, Marty
>
DtmfGrammarManager.dll!std::vector<boost::sub_match<std::basic_string<ch
ar,std::char_traits<char>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> >
>::_Tidy() Line 797 + 0x3 C++
DtmfGrammarManager.dll!std::vector<boost::sub_match<std::basic_string<ch
ar,std::char_traits<char>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> >
>::~vector<boost::sub_match<std::basic_string<char,std::char_traits<char
>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> > >()
Line 389 C++
DtmfGrammarManager.dll!std::vector<boost::sub_match<std::basic_string<ch
ar,std::char_traits<char>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> >
>::`scalar deleting destructor'() + 0xf C++
DtmfGrammarManager.dll!boost::checked_delete<std::vector<boost::sub_matc
h<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> > >
>(std::vector<boost::sub_match<std::basic_string<char,std::char_traits<c
har>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> > > *
x=0x00baadf0) Line 34 + 0x1c C++
DtmfGrammarManager.dll!boost::scoped_ptr<std::vector<boost::sub_match<st
d::basic_string<char,std::char_traits<char>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> > >
>::~scoped_ptr<std::vector<boost::sub_match<std::basic_string<char,std::
char_traits<char>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> > > >()
Line 77 + 0xb C++
DtmfGrammarManager.dll!boost::sub_match<std::basic_string<char,std::char
_traits<char>,std::allocator<char>
>::const_iterator>::~sub_match<std::basic_string<char,std::char_traits<c
har>,std::allocator<char> >::const_iterator>() + 0x12 C++
DtmfGrammarManager.dll!boost::sub_match<std::basic_string<char,std::char
_traits<char>,std::allocator<char> >::const_iterator>::`scalar deleting
destructor'() + 0xf C++
DtmfGrammarManager.dll!std::_Destroy<boost::sub_match<std::basic_string<
char,std::char_traits<char>,std::allocator<char> >::const_iterator>
>(boost::sub_match<std::basic_string<char,std::char_traits<char>,std::al
locator<char> >::const_iterator> * _Ptr=0x008d8428) Line 50
C++
DtmfGrammarManager.dll!std::allocator<boost::sub_match<std::basic_string
<char,std::char_traits<char>,std::allocator<char> >::const_iterator>
>::destroy(boost::sub_match<std::basic_string<char,std::char_traits<char
>,std::allocator<char> >::const_iterator> * _Ptr=0x008d8428) Line 152 +
0x9 C++
DtmfGrammarManager.dll!std::_Destroy_range<boost::sub_match<std::basic_s
tring<char,std::char_traits<char>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> >
>(boost::sub_match<std::basic_string<char,std::char_traits<char>,std::al
locator<char> >::const_iterator> * _First=0x008d8428,
boost::sub_match<std::basic_string<char,std::char_traits<char>,std::allo
cator<char> >::const_iterator> * _Last=0x008d8988,
std::allocator<boost::sub_match<std::basic_string<char,std::char_traits<
char>,std::allocator<char> >::const_iterator> > & _Al={...},
std::_Nonscalar_ptr_iterator_tag __formal={...}) Line 226 + 0xc
C++
DtmfGrammarManager.dll!std::_Destroy_range<boost::sub_match<std::basic_s
tring<char,std::char_traits<char>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> >
>(boost::sub_match<std::basic_string<char,std::char_traits<char>,std::al
locator<char> >::const_iterator> * _First=0x008d8428,
boost::sub_match<std::basic_string<char,std::char_traits<char>,std::allo
cator<char> >::const_iterator> * _Last=0x008d8988,
std::allocator<boost::sub_match<std::basic_string<char,std::char_traits<
char>,std::allocator<char> >::const_iterator> > & _Al={...}) Line 217 +
0x28 C++
DtmfGrammarManager.dll!std::vector<boost::sub_match<std::basic_string<ch
ar,std::char_traits<char>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> >
>::_Destroy(boost::sub_match<std::basic_string<char,std::char_traits<cha
r>,std::allocator<char> >::const_iterator> * _First=0x008d8428,
boost::sub_match<std::basic_string<char,std::char_traits<char>,std::allo
cator<char> >::const_iterator> * _Last=0x008d8988) Line 787 + 0x11 C++
DtmfGrammarManager.dll!std::vector<boost::sub_match<std::basic_string<ch
ar,std::char_traits<char>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> >
>::_Tidy() Line 795 C++
DtmfGrammarManager.dll!std::vector<boost::sub_match<std::basic_string<ch
ar,std::char_traits<char>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> >
>::~vector<boost::sub_match<std::basic_string<char,std::char_traits<char
>,std::allocator<char>
>::const_iterator>,std::allocator<boost::sub_match<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char> >::const_iterator> > >()
Line 389 C++
DtmfGrammarManager.dll!boost::match_results<std::basic_string<char,std::
char_traits<char>,std::allocator<char>
>::const_iterator,std::allocator<boost::sub_match<std::basic_string<char
,std::char_traits<char>,std::allocator<char> >::const_iterator> >
>::~match_results<std::basic_string<char,std::char_traits<char>,std::all
ocator<char>
>::const_iterator,std::allocator<boost::sub_match<std::basic_string<char
,std::char_traits<char>,std::allocator<char> >::const_iterator> > >()
Line 74 + 0x3d C++
DtmfGrammarManager.dll!CDtmfGrammar_custom::check(const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
inputData={...}, const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
currentInput={...},
std::basic_string<char,std::char_traits<char>,std::allocator<char> > *
pResultValue=0x0012ea9c, const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
termcharArg={...}) Line 949 + 0x19 C++
DtmfGrammarManager.dll!CDtmfGrammarManager::inputUpdate(const char *
utterancePortionArg=0x00406e2c) Line 200 + 0x3b C++
mscorwks.dll!7925de73()
tg12.exe!feedInput(char* iArg = 0x00406e2c, char*
termcharArg = 0x00406e28) Line 22 + 0x1e bytes C++
tg12.exe!main(__int32 argc = 1, char** argv = 0x008d8120)
Line 309 + 0x10 bytes C++
tg12.exe!mainCRTStartup() Line 398 + 0xe C
________________________________
Marty Eaves
STAFF SOFTWARE ENGINEER
CALL PROCESSING & MEDIA SERVICES
RESEARCH AND DEVELOPMENT
INTERVOICE, INC.
P: (972) 454-8348
marty.eaves_at_[hidden]
________________________________
Intervoice: Connecting People and Information.
This e-mail transmission may contain information that is proprietary, privileged and/or confidential and is intended exclusively for the person(s) to whom it is addressed. Any use, copying, retention or disclosure by any person other than the intended recipient or the intended recipient's designees is strictly prohibited. If you are the intended recipient, you must treat the information in confidence and in accordance with all laws related to the privacy and confidentiality of such information. If you are not the intended recipient or their designee, please notify the sender immediately by return e-mail and delete all copies of this email, including all attachments.
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