Boost logo

Boost :

Subject: [boost] [boost.test] Assertion/crash
From: Philip Bennefall (philip_at_[hidden])
Date: 2015-07-22 18:04:57


Hi all,

I am having an issue where boost.test is triggering an assert when I
make a BOOST_REQUIRE_EQUAL check. It always gives me the same assert.

I am on Windows 7 with Visual C++ 2013, compiling a 32 bit application.
This error happens both with boost_1_57_0 and boost_1_58_0.

The assert says:

Debug Assertion Failed!

Program: C:\Windows\system32\MSVCP120D.dll
File: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\xstring
Line: 168

Expression: string iterator + offset out of range

Here's the stack:

0041ef44 0149ca07 015c08f0 015c07e0 000000a8
MSVCP120D!std::_Debug_message+0x26
0041ef60 0149ca93 00000053 0041ef80 0041efa0
my_tests!std::_String_const_iterator<std::_String_val<std::_Simple_types<char>
> >::operator+=+0x77
0041ef70 0149c91e 00000053 d4f524ac 07d2cff0
my_tests!std::_String_iterator<std::_String_val<std::_Simple_types<char>
> >::operator+=+0x13
0041efa0 0149be76 0041efb4 00000053 d4f524ec
my_tests!std::_String_iterator<std::_String_val<std::_Simple_types<char>
> >::operator++0x4e
0041efe0 0149bdf6 0041f100 07d2ef28 07d2ef7b
my_tests!std::_Transform1<char
*,std::_String_iterator<std::_String_val<std::_Simple_types<char> >
>,char (__cdecl*)(char)>+0x46
0041f034 0149c1b1 0041f100 07d2ef28 07d2ef7b
my_tests!std::_Transform1<char
*,std::_String_iterator<std::_String_val<std::_Simple_types<char> >
>,char (__cdecl*)(char)>+0x96
0041f0c8 0149b5bf 0041f100 07d2cff0 0041f0e0
my_tests!std::transform<std::_String_iterator<std::_String_val<std::_Simple_types<char>
> >,std::_String_iterator<std::_String_val<std::_Simple_types<char> >
>,char (__cdecl*)(char)>+0x191
0041f148 0149d6e2 0041f18c 00000000 015c0d18
my_tests!boost::unit_test::unit_test_log_t::operator<<+0x10f
0041f2c8 014315dc 0041f320 0041f3f4 015aa770
my_tests!boost::test_tools::tt_detail::check_impl+0x372
0041f364 01404626 00000000 0041f3f4 015aa770
my_tests!boost::test_tools::tt_detail::check_frwd<boost::test_tools::tt_detail::equal_impl_frwd,int,enum
my_error_codes>+0xec
0041f458 014050af 000d7550 d4f53c34 00000000
my_tests!basic_operations::playback_decoders::pull_samples+0x146
0041f738 014053e6 015b223c 015b2234 00000000
my_tests!basic_operations::playback_decoders::iteration+0x8cf
0041f758 01405451 d4f53c70 cccccccc cccccccc
my_tests!basic_operations::playback_decoders::playback_decoders_mono::test_method+0x26
0041f77c 014399d1 00000000 cccccccc 0041f7a3
my_tests!basic_operations::playback_decoders::playback_decoders_mono_invoker+0x51
0041f790 0148a54f 0041f7cf 076ecff4 00cccccc
my_tests!boost::unit_test::ut_detail::invoker<boost::unit_test::ut_detail::unused>::invoke<void
(__cdecl*)(void)>+0x21
0041f7a8 01522cc5 0041f7cf 078c4ff0 076ecff0
my_tests!boost::unit_test::ut_detail::callback0_impl_t<boost::unit_test::ut_detail::unused,void
(__cdecl*)(void)>::invoke+0x2f
0041f7bc 01522ce7 0041f7cf 0a66aff4 00000000
my_tests!boost::unit_test::callback0<boost::unit_test::ut_detail::unused>::operator()+0x25
0041f7d0 01522a1f 0041f7ef 0041f7f0 01522dbd
my_tests!boost::unit_test::`anonymous
namespace'::zero_return_wrapper_t<boost::unit_test::callback0<boost::unit_test::ut_detail::unused>
>::operator()+0x17
0041f7dc 01522dbd 0a66aff4 0a66aff0 0041f918
my_tests!boost::unit_test::ut_detail::invoker<int>::invoke<boost::unit_test::`anonymous
namespace'::zero_return_wrapper_t<boost::unit_test::callback0<boost::unit_test::ut_detail::unused>
> >+0xf
0041f7f0 01521e31 0041f918 0a66aff0 0041f810
my_tests!boost::unit_test::ut_detail::callback0_impl_t<int,boost::unit_test::`anonymous
namespace'::zero_return_wrapper_t<boost::unit_test::callback0<boost::unit_test::ut_detail::unused>
> >::invoke+0x1d
0041f800 01521b6e 0041f814 538d1e44 0041f87c
my_tests!boost::unit_test::callback0<int>::operator()+0x21
0041f810 01521312 01620790 0041f918 d4f53370
my_tests!boost::detail::do_invoke<boost::scoped_ptr<boost::detail::translate_exception_base>,boost::unit_test::callback0<int>
>+0x3e
0041f87c 01520dc4 0041f918 d4f533f0 00000000
my_tests!boost::execution_monitor::catch_signals+0xd2
0041f8fc 0152259d 0041f918 d4f53268 00000000
my_tests!boost::execution_monitor::execute+0x54
0041f964 014b6723 078c4fa8 d4f5316c 01574668
my_tests!boost::unit_test::unit_test_monitor_t::execute_and_translate+0xad
0041fa60 014a2565 078c4fa8 0041fa7c 014a259a
my_tests!boost::unit_test::framework_impl::visit+0x3c3
0041fa6c 014a259a 078c4fa8 01620750 0041fb38
my_tests!boost::unit_test::traverse_test_tree+0x25
0041fa7c 014a22b2 00010040 01620750 d4f53034
my_tests!boost::unit_test::traverse_test_tree+0x2a
0041fb38 014a25b5 06258fa0 01620750 0041fc04
my_tests!boost::unit_test::traverse_test_tree+0x1e2
0041fb48 014a22b2 00000004 01620750 d4f53708
my_tests!boost::unit_test::traverse_test_tree+0x45
0041fc04 014a25b5 07388f98 01620750 0041fdc0
my_tests!boost::unit_test::traverse_test_tree+0x1e2
0041fc14 014a9ccb 00000001 01620750 d4f536cc
my_tests!boost::unit_test::traverse_test_tree+0x45
0041fdc0 014b6bc3 00000001 00000001 d4f53538
my_tests!boost::unit_test::framework::run+0x5db
0041fe34 014b6d5c 013b346d 00000001 066fafb0
my_tests!boost::unit_test::unit_test_main+0xb3
0041fe4c 014996f9 00000001 066fafb0 05f44f28 my_tests!main+0x1c
0041fe9c 0149983d 0041feb0 74e4337a 7efde000
my_tests!__tmainCRTStartup+0x199
0041fea4 74e4337a 7efde000 0041fef0 773892e2 my_tests!mainCRTStartup+0xd
0041feb0 773892e2 7efde000 74959ac7 00000000
kernel32!BaseThreadInitThunk+0x12
0041fef0 773892b5 01499830 7efde000 00000000
ntdll!RtlInitializeExceptionChain+0x63
0041ff08 00000000 01499830 7efde000 00000000
ntdll!RtlInitializeExceptionChain+0x36

Does anyone have any tips for things I might try?

Thanks in advance for any help on this!

Kind regards,

Philip Bennefall


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