Menu

No channel output string

Anonymous
2013-05-28
2013-06-20
<< < 1 2 3 > >> (Page 2 of 3)
  • Andrey Semashev

    Andrey Semashev - 2013-06-03

    Please, update the library to the latest version and see if it helps. If it still crashes, a backtrace and a compilable example would be helpful.

     
  • Anonymous

    Anonymous - 2013-06-03

    Hey!

    I've already updated to the latest library version -> Still crash. 
    Please find the compilable source code here:

    http://www.sourcepod.com/hypsmf86-18981

    After the third execution of the application the boost log figures out, that the directory size of 200 bytes has been exceeded and it it's necessary to delete the oldest logfile, afterwards it crashes.

    I appreciate your help!

     
  • Anonymous

    Anonymous - 2013-06-03

    Hi.

    Please find the stack trace below:

    Thread  0 (Suspended : Signal : SIGSEGV:Segmentation fault)
    0x44727c
    boost::filesystem::path_traits::convert() at 0x44757f
    _fu1363___ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE() at 0x447883
    boost::filesystem::detail::status() at 0x4488da
    _fu1169___ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE() at 0x437bb7
    boost::log::v2s_mt_nt5::sinks::text_file_backend::rotate_file() at 0x436bc6
    0x3852d4
    boost::log::v2s_mt_nt5::sinks::synchronous_sink<boost::log::v2s_mt_nt5::sinks::text_file_backend>::~synchronous_sink() at 0x48934c
    boost::detail::sp_ms_deleter<boost::log::v2s_mt_nt5::sinks::synchronous_sink<boost::log::v2s_mt_nt5::sinks::text_file_backend> >::destroy() at 0x4035e6
    boost::detail::sp_counted_impl_p<boost::log::v2s_mt_nt5::core>::dispose() at 0x4a558f
    __tcf_0() at 0x42bb97
    msvcrt!isspace() at 0x767dc3e9
    msvcrt!_cexit() at 0x767e37df
    0x0

     
  • Andrey Semashev

    Andrey Semashev - 2013-06-03

    The problem is in Boost.Filesystem. When the application terminates, Boost.Log attempts to rotate the log file and calls Boost.Filesystem routines, which fail because they use a global locale, which is already destroyed at that point.

    The simplest solution for you is to manually remove all sinks before you exit main. This way file rotation will succeed.

     
  • Anonymous

    Anonymous - 2013-06-03

    …okay, but in case I don't terminate my application and keep continuing the creation of log records, the application crashes too, in case the directory size has been exceeded.  So either I didn't get your solution or this solution is not the correct one…

    You can test this behavior by appending some addintional log records calls to the uploaded code….

     
  • Andrey Semashev

    Andrey Semashev - 2013-06-03

    The backtrace you presented indicates program termination. If you have crashes during the active execution, please, provide a backtrace from that kind of crash.

     
  • Anonymous

    Anonymous - 2013-06-03

    …ohh, sorry.

    Here is the updated code

    http://www.sourcepod.com/zeyexv25-18983

    And here the backtrace:

    Thread  0 (Suspended : Signal : SIGSEGV:Segmentation fault)
    0x447e80
    boost::filesystem::path_traits::convert() at 0x448183
    _fu1363___ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE() at 0x448487
    boost::filesystem::detail::status() at 0x4494de
    _fu1169___ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE() at 0x4387bb
    boost::log::v2s_mt_nt5::sinks::text_file_backend::rotate_file() at 0x4377ca
    0xc452cc
    boost::log::v2s_mt_nt5::sinks::synchronous_sink<boost::log::v2s_mt_nt5::sinks::text_file_backend>::~synchronous_sink() at 0x489f4c
    boost::detail::sp_ms_deleter<boost::log::v2s_mt_nt5::sinks::synchronous_sink<boost::log::v2s_mt_nt5::sinks::text_file_backend> >::destroy() at 0x4041ea
    boost::detail::sp_counted_impl_p<boost::log::v2s_mt_nt5::core>::dispose() at 0x4a618f
    __tcf_0() at 0x42c79b
    msvcrt!isspace() at 0x767dc3e9
    msvcrt!_cexit() at 0x767e37df
    0x0

     
  • Andrey Semashev

    Andrey Semashev - 2013-06-03

    That's still program termination. Are you not catching an exception by any chance?

     
  • Anonymous

    Anonymous - 2013-06-03

    I've surrended the complete main application code with a catch block -> Nothing caught…

    But you're right: The crash is triggered on terminating the application. I've verified by including a std::cin to stop the application execution.

    So, I've to remove the sinks before I leave the applicaiton. I've to check the documenation to figure out how to remove this sinks which were allocated by a "..int_from_settings" call.

     
  • Anonymous

    Anonymous - 2013-06-03

    …but this issue is not nice….

     
  • Anonymous

    Anonymous - 2013-06-03

    …so, removing the sinks with

        boost::shared_ptr< logging::core > core = logging::core::get();
        core->remove_all_sinks();
    

    from the core while performing application's de-initialization tasks helped me!

    As I understood correctly, It isn't necessary to stop feeding and reseting the sinks as long as I'm not using asynchronous logging loggers. If it would be necessary, how can I get the sinks, which were generated by the "settings" schema, from the logging core? There are no "get_sinks…()" methods defined in the core…

    But okay, as long as I'm using synchronous logging, its not necessary for me…or?

    Thank you for your fast responses Andrey!

     
  • Andrey Semashev

    Andrey Semashev - 2013-06-03

    Unfortunately, there is no such method currently. This is a known limitation of the API.
    As long as you don't use async logging you don't need to stop anything on process termination.

     
  • RaRi

    RaRi - 2013-06-04

    Hi Andrey,

    how can I specifiy the format of the timestamp attribute in case the logging options are read via "init_from_stream"?

    For example:

    File Sink-specific Formatter string. Optional, by default only log >record message text is written.

    Format ="[%MGPTLTAG% - %TimeStamp% - %Channel% - %Severity%] %Message%"

    I would like to have the following time stamp format : "%d-%m-%Y %H:%M:%S".
    Trying it with "%TimeStamp%d-%m-%Y %H:%M:%S" seems not to work.

    Okay, one may suggest to configure the time stamp programmatically via the


    fileSink->set_formatter (
    expr::stream <<
    "[" << expr::attr< std::string >("MGPTLTAG") << " - " <<
    expr::format_date_time< boost::posix_time::ptime >("TimeStamp", "%d-%m-%Y %H:%M:%S") << "]
    " <<
    " " <<
    expr::smessage <<
    expr::attr< std::string >("BIER")

    But this isn't possible, as I'm not able to retrieve the file sink from the logging core. We have discussed this one or two post earlier...

    Question: Is there a possibility to provide a time stamp format string ("%d-%m-%Y %H:%M:%S") to the config file options?

    I think, i know your answer: "...register a user-defined format factory...". But the timestamp is a build-in boost.log feature...

    Thx so far

     

    Last edit: RaRi 2013-06-04
  • Andrey Semashev

    Andrey Semashev - 2013-06-04

    Yes, you can register a formatter factory that will extract a parameter with the timestamp format from the formatter arguments and pass it to the library-provided date/time formatter. Search the forum, I think this was discussed already.

     
  • RaRi

    RaRi - 2013-06-11

    Hi Andrey,

    I figured out a crash on Windows XP using the boost.log library.

    I'm implementing currently a shared library for Windows. Within this library
    I'm using a global logger instance which isn't within a constructor or de-initiated within a destructor. My shared library is linking to the static boost.log library.

    My problem occurs: My application, which is using my shared library crashes always on start-up in case logging is enabled:

    The logging configuration is read from a configuration file which contains:

    [Core]
    DisableLogging = false

    In case I disable the logging, this means the configuration option "DisableLogging" is set to true, as follows:

    [Core]
    DisableLogging = true

    My application doesn't crash anymore. So it seems, that the "evil" is hosted in the boost.log library.

    I've already tried to compile the boost.log library with "BOOST_LOG_NO_COMPILER_TLS" set. But unfortunately, I got the same behavior.

    Any ideas?

    Regards,

    P.S: Within the shared library, which I'm implementing, I'm using a "control"-thread. First I thought, I'm not using any semaphors, to manage the access to the global loger, but actually I figured out, that I'm using a global logger of type "src::severity_channel_logger_mt". So this couldn't be the problem...

     
  • Andrey Semashev

    Andrey Semashev - 2013-06-11

    As before, I cannot tell anything before I see the backtrace.

     
  • RaRi

    RaRi - 2013-06-13

    Hi Andrey,

    here is the backtrace:

    ABoostLog WithThread [C/C++ Application]
    WithThread.exe [2732]
    Thread [2] 0 (Suspended : Signal : SIGSEGV:Segmentation fault)
    msvcrt!argc() at 0x77c0330c
    msvcrt!
    crtCompareStringA() at 0x77c2f958
    msvcrt!crtCompareStringA() at 0x77c2f79a
    msvcrt!
    crtCompareStringA() at 0x77c2f958
    0x3
    0xcdf590
    msvcrt!__argc() at 0x77c0356a
    0x0
    Thread [1] 0 (Suspended : Container)
    wcsncat() at 0x7c92b3e4
    ntdll!RtlpNtMakeTemporaryKey() at 0x7c97d6aa
    ntdll!RtlInsertElementGenericTableAvl() at 0x7c959d18
    wcsncat() at 0x7c92b298
    msvcrt!free() at 0x77bfc3c9
    0x3d0000
    msvcrt!free() at 0x77bfc3e7
    0x54
    0x22f62c
    msvcrt!malloc() at 0x77bfc42e
    setlocale() at 0x77c03c78
    0x54
    0x0
    gdb

    More infos:
    The crash occurs always in case I use boost.log in an application, which creates a simple thread. within this thread I create some log-records. The main thread also creates some log-records.

    This crash just occurs on Windows XP-Platforms. I'Ve tested this on 4 different Windows XP machines. On Windows 7 there is no such crash.

    You can find the source code of the crashin test application here: http://codeviewer.org/view/code:344c

    The cpp-file containing the logging code the application is using can be found here ("Logging.cpp"-file):
    http://codeviewer.org/view/code:344e

    The hpp-file containing the logging code of the application is using can be found here ("Logging.hpp"-file):
    http://codeviewer.org/view/code:344f

    Im currently working 4 days on this crash, but I came not around to solve this problem...

    Hope, you can provide me with some useful help. In case nothing helps, our development team has to replace the boost.log library for the production code with another logging library. We hope, this won't be necessary. Our prodcution code has to run on Windows 7 and Windows XP as well Linux-like systems.

    Maybe this is a synchronization problem. But we're using the "severity_channel_logger_mt" logger, which should guarentee thread-safety...

    Thanks to so far!

    Regards

     

    Last edit: RaRi 2013-06-13
  • RaRi

    RaRi - 2013-06-13

    Hi Andrey,

    please also consider this backtrace:

    WithThread.exe caused an Access Violation at location 77c03509 in module msvcrt.dll Reading from location 00000000.

    Registers:
    eax=00cdfb88 ebx=003d6afc ecx=003d6d24 edx=003d6d24 esi=00000758 edi=00000000
    eip=7c91eb94 esp=00cdfb4c ebp=00cdfbb0 iopl=0 nv up ei pl zr na po nc
    cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

    Call stack:
    7C91EB94 ntdll.dll:7C91EB94 KiFastSystemCallRet
    7C802532 kernel32.dll:7C802532 WaitForSingleObject
    0041E33D WithThread.exe:0041E33D
    XXXXXXXXXXXXXXXXXXXXXX
    Registers:
    eax=77c2f94c ebx=77c2f94c ecx=00000000 edx=77c2f798 esi=77c2f79a edi=ffffffff
    eip=77c03509 esp=0022f520 ebp=0022f534 iopl=0 nv up ei ng nz ac po cy
    cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000297

    Call stack:
    77C03509 msvcrt.dll:77C03509 unguarded_readlc_active_add_func
    77C03C1B msvcrt.dll:77C03C1B
    unguarded_readlc_active_add_func
    77C03C60 msvcrt.dll:77C03C60 setlocale
    6FC671D1 libstdc++-6.dll:6FC671D1 std::__timepunct<char>::_M_put
    6FC7A63C libstdc++-6.dll:6FC7A63C std::time_put<char, std::ostreambuf_iterator<char,="" std::char_traits<char=""> > >::do_put
    6FC7A4CA libstdc++-6.dll:6FC7A4CA std::time_put<char, std::ostreambuf_iterator<char,="" std::char_traits<char=""> > >::put
    004EE047 WithThread.exe:004EE047

     
  • Andrey Semashev

    Andrey Semashev - 2013-06-13

    Could you rebuild the libraries and the application in debug configuration so that symbol names are visible?

     
  • RaRi

    RaRi - 2013-06-13

    ..I've already done this. Unfortunately, I got not more information. But I will try it once more time. Maybe I'Ve overseen something.

     
  • RaRi

    RaRi - 2013-06-13

    ABoostLog WithThread [C/C++ Application]
    WithThread.exe [1684]
    Thread [2] 0 (Suspended : Signal : SIGSEGV:Segmentation fault)
    msvcrt!argc() at 0x77c0330c
    0x0
    Thread [1] 0 (Suspended : Container)
    ntdll!RtlComputePrivatizedDllName_U() at 0x7c91305b
    ntdll!RtlInsertElementGenericTableAvl() at 0x7c959e61
    ntdll!RtlpNtMakeTemporaryKey() at 0x7c97d6aa
    ntdll!RtlInsertElementGenericTableAvl() at 0x7c959d18
    wcsncat() at 0x7c92b298
    msvcrt!free() at 0x77bfc3c9
    0x3d0000
    msvcrt!free() at 0x77bfc3e7
    0x54
    0x22ef5c
    msvcrt!malloc() at 0x77bfc42e
    setlocale() at 0x77c03c78
    0x54
    0x1
    libstdc++-6!_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc() at 0x6fc7a574
    libstdc++-6!_ZNKSt11
    timepunctIcE6_M_putEPcjPKcPK2tm() at 0x6fc67220
    libstdc++-6!ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc() at 0x6fc7a63c
    libstdc++-6!_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB
    () at 0x6fc7a4ca
    boost::date_time::date_facet<boost::gregorian::date, char,="" std::ostreambuf_iterator<char,="" std::char_traits<char=""> > >::do_put_tm() at date_facet.hpp:346 0x5cda0b
    boost::date_time::time_facet<boost::posix_time::ptime, char,="" std::ostreambuf_iterator<char,="" std::char_traits<char=""> > >::put() at time_facet.hpp:428 0x5d09e6
    boost::posix_time::operator<< <char, std::char_traits<char=""> >() at posix_time_io.hpp:63 0x4803bd
    boost::log::v2s_mt_nt5::basic_formatting_ostream<char, std::char_traits<char="">, std::allocator<char> >::operator<< <boost::posix_time::ptime>() at formatting_ostream.hpp:410 0x4b4f63
    boost::log::v2s_mt_nt5::operator<< <char, std::char_traits<char="">, std::allocator<char>, boost::posix_time::ptime, void>() at to_log.hpp:70 0x4dc87f
    boost::log::v2s_mt_nt5::to_log_fun<void>::operator() at bind_to_log.hpp:54 0x580ee1
    boost::log::v2s_mt_nt5::binder1st<boost::log::v2s_mt_nt5::to_log_fun<void> const&, boost::log::v2s_mt_nt5::basic_formatting_ostream<char, std::char_traits<char="">, std::allocator<char> >&>::operator() at bind.hpp:93 0x5931f1
    boost::log::v2s_mt_nt5::type_dispatcher::callback_base::trampoline<boost::log::v2s_mt_nt5::binder1st<boost::log::v2s_mt_nt5::to_log_fun<void> const&, boost::log::v2s_mt_nt5::basic_formatting_ostream<char, std::char_traits<char="">, std::allocator<char> >&>, boost::posix_time::ptime>() at type_dispatcher.hpp:77 0x4af664
    boost::log::v2s_mt_nt5::type_dispatcher::callback<boost::posix_time::ptime>::operator() at type_dispatcher.hpp:112 0x583ca2
    boost::log::v2s_mt_nt5::attributes::attribute_value_impl<boost::posix_time::ptime>::dispatch() at attribute_value_impl.hpp:80 0x4a8d74
    boost::log::v2s_mt_nt5::attribute_value::dispatch() at attribute_value.hpp:201 0x5836c0
    boost::log::v2s_mt_nt5::value_visitor_invoker<boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::process>, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::thread>, boost::mpl::v_item<boost::log::v2s_mt_nt5::attributes::named_scope_list, boost::mpl::v_item<boost::date_time::period<boost::gregorian::date,="" boost::gregorian::date_duration="">, boost::mpl::v_item<boost::date_time::period<boost::local_time::local_date_time_base<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::posix_time::time_duration>, boost::mpl::v_item<boost::date_time::period<boost::posix_time::ptime, boost::posix_time::time_duration="">, boost::mpl::v_item<boost::gregorian::date_duration, boost::mpl::v_item<boost::posix_time::time_duration,="" boost::mpl::v_item<boost::local_time::local_date_time_base<boost::posix_time::ptime,="" boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::mpl::v_item<boost::posix_time::ptime, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<wchar_t,="" std::char_traits<wchar_t=""> >, boost::mpl::v_item<std::basic_string<wchar_t, std::char_traits<wchar_t="">, std::allocator<wchar_t> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<char, std::char_traits<char=""> >, boost::mpl::v_item<std::string, boost::mpl::v_item<long="" double,="" boost::mpl::v_item<double,="" boost::mpl::v_item<float,="" boost::mpl::vector<bool,="" char,="" wchar_t,="" signed="" char,="" unsigned="" char,="" short,="" unsigned="" short,="" int,="" unsigned="" int,="" long,="" unsigned="" long,="" long="" long,="" unsigned="" long="" long,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na="">, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, boost::log::v2s_mt_nt5::fallback_to_none>::operator() at value_visitation.hpp:149 0x58780a
    boost::log::v2s_mt_nt5::value_visitor_invoker<boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::process>, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::thread>, boost::mpl::v_item<boost::log::v2s_mt_nt5::attributes::named_scope_list, boost::mpl::v_item<boost::date_time::period<boost::gregorian::date,="" boost::gregorian::date_duration="">, boost::mpl::v_item<boost::date_time::period<boost::local_time::local_date_time_base<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::posix_time::time_duration>, boost::mpl::v_item<boost::date_time::period<boost::posix_time::ptime, boost::posix_time::time_duration="">, boost::mpl::v_item<boost::gregorian::date_duration, boost::mpl::v_item<boost::posix_time::time_duration,="" boost::mpl::v_item<boost::local_time::local_date_time_base<boost::posix_time::ptime,="" boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::mpl::v_item<boost::posix_time::ptime, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<wchar_t,="" std::char_traits<wchar_t=""> >, boost::mpl::v_item<std::basic_string<wchar_t, std::char_traits<wchar_t="">, std::allocator<wchar_t> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<char, std::char_traits<char=""> >, boost::mpl::v_item<std::string, boost::mpl::v_item<long="" double,="" boost::mpl::v_item<double,="" boost::mpl::v_item<float,="" boost::mpl::vector<bool,="" char,="" wchar_t,="" signed="" char,="" unsigned="" char,="" short,="" unsigned="" short,="" int,="" unsigned="" int,="" long,="" unsigned="" long,="" long="" long,="" unsigned="" long="" long,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na="">, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, boost::log::v2s_mt_nt5::fallback_to_none>::operator() at value_visitation.hpp:184 0x587723
    boost::log::v2s_mt_nt5::value_visitor_invoker<boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::process>, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::thread>, boost::mpl::v_item<boost::log::v2s_mt_nt5::attributes::named_scope_list, boost::mpl::v_item<boost::date_time::period<boost::gregorian::date,="" boost::gregorian::date_duration="">, boost::mpl::v_item<boost::date_time::period<boost::local_time::local_date_time_base<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::posix_time::time_duration>, boost::mpl::v_item<boost::date_time::period<boost::posix_time::ptime, boost::posix_time::time_duration="">, boost::mpl::v_item<boost::gregorian::date_duration, boost::mpl::v_item<boost::posix_time::time_duration,="" boost::mpl::v_item<boost::local_time::local_date_time_base<boost::posix_time::ptime,="" boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::mpl::v_item<boost::posix_time::ptime, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<wchar_t,="" std::char_traits<wchar_t=""> >, boost::mpl::v_item<std::basic_string<wchar_t, std::char_traits<wchar_t="">, std::allocator<wchar_t> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<char, std::char_traits<char=""> >, boost::mpl::v_item<std::string, boost::mpl::v_item<long="" double,="" boost::mpl::v_item<double,="" boost::mpl::v_item<float,="" boost::mpl::vector<bool,="" char,="" wchar_t,="" signed="" char,="" unsigned="" char,="" short,="" unsigned="" short,="" int,="" unsigned="" int,="" long,="" unsigned="" long,="" long="" long,="" unsigned="" long="" long,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na="">, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, boost::log::v2s_mt_nt5::fallback_to_none>::operator() at value_visitation.hpp:225 0x5876a6
    boost::log::v2s_mt_nt5::expressions::aux::attribute_output_terminal<boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::argument<2=""> >, 0l> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::process>, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::thread>, boost::mpl::v_item<boost::log::v2s_mt_nt5::attributes::named_scope_list, boost::mpl::v_item<boost::date_time::period<boost::gregorian::date,="" boost::gregorian::date_duration="">, boost::mpl::v_item<boost::date_time::period<boost::local_time::local_date_time_base<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::posix_time::time_duration>, boost::mpl::v_item<boost::date_time::period<boost::posix_time::ptime, boost::posix_time::time_duration="">, boost::mpl::v_item<boost::gregorian::date_duration, boost::mpl::v_item<boost::posix_time::time_duration,="" boost::mpl::v_item<boost::local_time::local_date_time_base<boost::posix_time::ptime,="" boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::mpl::v_item<boost::posix_time::ptime, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<wchar_t,="" std::char_traits<wchar_t=""> >, boost::mpl::v_item<std::basic_string<wchar_t, std::char_traits<wchar_t="">, std::allocator<wchar_t> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<char, std::char_traits<char=""> >, boost::mpl::v_item<std::string, boost::mpl::v_item<long="" double,="" boost::mpl::v_item<double,="" boost::mpl::v_item<float,="" boost::mpl::vector<bool,="" char,="" wchar_t,="" signed="" char,="" unsigned="" char,="" short,="" unsigned="" short,="" int,="" unsigned="" int,="" long,="" unsigned="" long,="" long="" long,="" unsigned="" long="" long,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na="">, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, boost::log::v2s_mt_nt5::fallback_to_none, boost::log::v2s_mt_nt5::to_log_fun<void> >::operator() at attr_output_terminal.hpp:138 0x58215a
    boost::phoenix::custom_terminal<boost::log::v2s_mt_nt5::expressions::aux::attribute_output_terminal<boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::argument<2=""> >, 0l> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::process>, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::thread>, boost::mpl::v_item<boost::log::v2s_mt_nt5::attributes::named_scope_list, boost::mpl::v_item<boost::date_time::period<boost::gregorian::date,="" boost::gregorian::date_duration="">, boost::mpl::v_item<boost::date_time::period<boost::local_time::local_date_time_base<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::posix_time::time_duration>, boost::mpl::v_item<boost::date_time::period<boost::posix_time::ptime, boost::posix_time::time_duration="">, boost::mpl::v_item<boost::gregorian::date_duration, boost::mpl::v_item<boost::posix_time::time_duration,="" boost::mpl::v_item<boost::local_time::local_date_time_base<boost::posix_time::ptime,="" boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::mpl::v_item<boost::posix_time::ptime, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<wchar_t,="" std::char_traits<wchar_t=""> >, boost::mpl::v_item<std::basic_string<wchar_t, std::char_traits<wchar_t="">, std::allocator<wchar_t> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<char, std::char_traits<char=""> >, boost::mpl::v_item<std::string, boost::mpl::v_item<long="" double,="" boost::mpl::v_item<double,="" boost::mpl::v_item<float,="" boost::mpl::vector<bool,="" char,="" wchar_t,="" signed="" char,="" unsigned="" char,="" short,="" unsigned="" short,="" int,="" unsigned="" int,="" long,="" unsigned="" long,="" long="" long,="" unsigned="" long="" long,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na="">, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, boost::log::v2s_mt_nt5::fallback_to_none, boost::log::v2s_mt_nt5::to_log_fun<void> >, void>::operator() at custom_terminal_spec.hpp:60 0x5cb25f
    operator() at call.hpp:258 0x5cbc10
    boost::phoenix::evaluator::impl<boost::phoenix::actor<boost::log::v2s_mt_nt5::expressions::aux::attribute_output_terminal<boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::argument<2=""> >, 0l> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::process>, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::thread>, boost::mpl::v_item<boost::log::v2s_mt_nt5::attributes::named_scope_list, boost::mpl::v_item<boost::date_time::period<boost::gregorian::date,="" boost::gregorian::date_duration="">, boost::mpl::v_item<boost::date_time::period<boost::local_time::local_date_time_base<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::posix_time::time_duration>, boost::mpl::v_item<boost::date_time::period<boost::posix_time::ptime, boost::posix_time::time_duration="">, boost::mpl::v_item<boost::gregorian::date_duration, boost::mpl::v_item<boost::posix_time::time_duration,="" boost::mpl::v_item<boost::local_time::local_date_time_base<boost::posix_time::ptime,="" boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::mpl::v_item<boost::posix_time::ptime, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<wchar_t,="" std::char_traits<wchar_t=""> >, boost::mpl::v_item<std::basic_string<wchar_t, std::char_traits<wchar_t="">, std::allocator<wchar_t> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<char, std::char_traits<char=""> >, boost::mpl::v_item<std::string, boost::mpl::v_item<long="" double,="" boost::mpl::v_item<double,="" boost::mpl::v_item<float,="" boost::mpl::vector<bool,="" char,="" wchar_t,="" signed="" char,="" unsigned="" char,="" short,="" unsigned="" short,="" int,="" unsigned="" int,="" long,="" unsigned="" long,="" long="" long,="" unsigned="" long="" long,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na="">, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, boost::log::v2s_mt_nt5::fallback_to_none, boost::log::v2s_mt_nt5::to_log_fun<void> > > const&, boost::phoenix::vector2<boost::phoenix::vector3<boost::phoenix::actor<boost::log::v2s_mt_nt5::expressions::aux::attribute_output_terminal<boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::argument<2=""> >, 0l> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::process>, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::thread>, boost::mpl::v_item<boost::log::v2s_mt_nt5::attributes::named_scope_list, boost::mpl::v_item<boost::date_time::period<boost::gregorian::date,="" boost::gregorian::date_duration="">, boost::mpl::v_item<boost::date_time::period<boost::local_time::local_date_time_base<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::posix_time::time_duration>, boost::mpl::v_item<boost::date_time::period<boost::posix_time::ptime, boost::posix_time::time_duration="">, boost::mpl::v_item<boost::gregorian::date_duration, boost::mpl::v_item<boost::posix_time::time_duration,="" boost::mpl::v_item<boost::local_time::local_date_time_base<boost::posix_time::ptime,="" boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::mpl::v_item<boost::posix_time::ptime, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<wchar_t,="" std::char_traits<wchar_t=""> >, boost::mpl::v_item<std::basic_string<wchar_t, std::char_traits<wchar_t="">, std::allocator<wchar_t> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<char, std::char_traits<char=""> >, boost::mpl::v_item<std::string, boost::mpl::v_item<long="" double,="" boost::mpl::v_item<double,="" boost::mpl::v_item<float,="" boost::mpl::vector<bool,="" char,="" wchar_t,="" signed="" char,="" unsigned="" char,="" short,="" unsigned="" short,="" int,="" unsigned="" int,="" long,="" unsigned="" long,="" long="" long,="" unsigned="" long="" long,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na="">, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, boost::log::v2s_mt_nt5::fallback_to_none, boost::log::v2s_mt_nt5::to_log_fun<void> > > const, boost::log::v2s_mt_nt5::record_view const&, boost::log::v2s_mt_nt5::basic_formatting_ostream<char, std::char_traits<char="">, std::allocator<char> >&>&, boost::phoenix::default_actions const&> const&, boost::proto::envns_::empty_env>::operator() at meta_grammar.hpp:74 0x5cbc10
    operator() at meta_grammar.hpp:34 0x52d2c8
    boost::phoenix::eval<boost::phoenix::actor<boost::log::v2s_mt_nt5::expressions::aux::attribute_output_terminal<boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::argument<2=""> >, 0l> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::process>, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::thread>, boost::mpl::v_item<boost::log::v2s_mt_nt5::attributes::named_scope_list, boost::mpl::v_item<boost::date_time::period<boost::gregorian::date,="" boost::gregorian::date_duration="">, boost::mpl::v_item<boost::date_time::period<boost::local_time::local_date_time_base<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::posix_time::time_duration>, boost::mpl::v_item<boost::date_time::period<boost::posix_time::ptime, boost::posix_time::time_duration="">, boost::mpl::v_item<boost::gregorian::date_duration, boost::mpl::v_item<boost::posix_time::time_duration,="" boost::mpl::v_item<boost::local_time::local_date_time_base<boost::posix_time::ptime,="" boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::mpl::v_item<boost::posix_time::ptime, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<wchar_t,="" std::char_traits<wchar_t=""> >, boost::mpl::v_item<std::basic_string<wchar_t, std::char_traits<wchar_t="">, std::allocator<wchar_t> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<char, std::char_traits<char=""> >, boost::mpl::v_item<std::string, boost::mpl::v_item<long="" double,="" boost::mpl::v_item<double,="" boost::mpl::v_item<float,="" boost::mpl::vector<bool,="" char,="" wchar_t,="" signed="" char,="" unsigned="" char,="" short,="" unsigned="" short,="" int,="" unsigned="" int,="" long,="" unsigned="" long,="" long="" long,="" unsigned="" long="" long,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na="">, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, boost::log::v2s_mt_nt5::fallback_to_none, boost::log::v2s_mt_nt5::to_log_fun<void> > >, boost::phoenix::vector2<boost::phoenix::vector3<boost::phoenix::actor<boost::log::v2s_mt_nt5::expressions::aux::attribute_output_terminal<boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::argument<2=""> >, 0l> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::process>, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::thread>, boost::mpl::v_item<boost::log::v2s_mt_nt5::attributes::named_scope_list, boost::mpl::v_item<boost::date_time::period<boost::gregorian::date,="" boost::gregorian::date_duration="">, boost::mpl::v_item<boost::date_time::period<boost::local_time::local_date_time_base<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::posix_time::time_duration>, boost::mpl::v_item<boost::date_time::period<boost::posix_time::ptime, boost::posix_time::time_duration="">, boost::mpl::v_item<boost::gregorian::date_duration, boost::mpl::v_item<boost::posix_time::time_duration,="" boost::mpl::v_item<boost::local_time::local_date_time_base<boost::posix_time::ptime,="" boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::mpl::v_item<boost::posix_time::ptime, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<wchar_t,="" std::char_traits<wchar_t=""> >, boost::mpl::v_item<std::basic_string<wchar_t, std::char_traits<wchar_t="">, std::allocator<wchar_t> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<char, std::char_traits<char=""> >, boost::mpl::v_item<std::string, boost::mpl::v_item<long="" double,="" boost::mpl::v_item<double,="" boost::mpl::v_item<float,="" boost::mpl::vector<bool,="" char,="" wchar_t,="" signed="" char,="" unsigned="" char,="" short,="" unsigned="" short,="" int,="" unsigned="" int,="" long,="" unsigned="" long,="" long="" long,="" unsigned="" long="" long,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na="">, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, boost::log::v2s_mt_nt5::fallback_to_none, boost::log::v2s_mt_nt5::to_log_fun<void> > > const
    , boost::log::v2s_mt_nt5::record_view const&, boost::log::v2s_mt_nt5::basic_formatting_ostream<char, std::char_traits<char="">, std::allocator<char> >&>&, boost::phoenix::default_actions const&> >() at meta_grammar.hpp:139 0x52d2c8
    boost::phoenix::actor<boost::log::v2s_mt_nt5::expressions::aux::attribute_output_terminal<boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::argument<2=""> >, 0l> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::process>, boost::mpl::v_item<boost::log::v2s_mt_nt5::aux::id<boost::log::v2s_mt_nt5::aux::thread>, boost::mpl::v_item<boost::log::v2s_mt_nt5::attributes::named_scope_list, boost::mpl::v_item<boost::date_time::period<boost::gregorian::date,="" boost::gregorian::date_duration="">, boost::mpl::v_item<boost::date_time::period<boost::local_time::local_date_time_base<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::posix_time::time_duration>, boost::mpl::v_item<boost::date_time::period<boost::posix_time::ptime, boost::posix_time::time_duration="">, boost::mpl::v_item<boost::gregorian::date_duration, boost::mpl::v_item<boost::posix_time::time_duration,="" boost::mpl::v_item<boost::local_time::local_date_time_base<boost::posix_time::ptime,="" boost::date_time::time_zone_base<boost::posix_time::ptime,="" char=""> >, boost::mpl::v_item<boost::posix_time::ptime, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<wchar_t,="" std::char_traits<wchar_t=""> >, boost::mpl::v_item<std::basic_string<wchar_t, std::char_traits<wchar_t="">, std::allocator<wchar_t> >, boost::mpl::v_item<boost::log::v2s_mt_nt5::basic_string_literal<char, std::char_traits<char=""> >, boost::mpl::v_item<std::string, boost::mpl::v_item<long="" double,="" boost::mpl::v_item<double,="" boost::mpl::v_item<float,="" boost::mpl::vector<bool,="" char,="" wchar_t,="" signed="" char,="" unsigned="" char,="" short,="" unsigned="" short,="" int,="" unsigned="" int,="" long,="" unsigned="" long,="" long="" long,="" unsigned="" long="" long,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na,="" mpl_::na="">, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, 0>, boost::log::v2s_mt_nt5::fallback_to_none, boost::log::v2s_mt_nt5::to_log_fun<void> > >::operator() at actor_operator_10.hpp:31 0x5cb3ad
    boost::log::v2s_mt_nt5::() at formatter_parser.cpp:144 0x4174a3
    boost::log::v2s_mt_nt5::aux::light_function<void() at="" light_function_pp.hpp:280="" 0x4163e9="" <br=""> boost::log::v2s_mt_nt5::aux::light_function<void ()="" at="" light_function_pp.hpp:391="" 0x58d38c="" <br=""> boost::log::v2s_mt_nt5::basic_formatter<char>::operator() at formatter.hpp:157 0x5837a4
    boost::log::v2s_mt_nt5::() at formatter_parser.cpp:143 0x4176c6
    boost::log::v2s_mt_nt5::aux::light_function<void() at="" light_function_pp.hpp:280="" 0x41657f="" <br=""> boost::log::v2s_mt_nt5::aux::light_function<void ()="" at="" light_function_pp.hpp:391="" 0x58d38c="" <br=""> boost::log::v2s_mt_nt5::basic_formatter<char>::operator() at formatter.hpp:157 0x5837a4
    boost::log::v2s_mt_nt5::() at formatter_parser.cpp:143 0x417486
    boost::log::v2s_mt_nt5::aux::light_function<void() at="" light_function_pp.hpp:280="" 0x4163e9="" <br=""> boost::log::v2s_mt_nt5::aux::light_function<void ()="" at="" light_function_pp.hpp:391="" 0x58d38c="" <br=""> boost::log::v2s_mt_nt5::basic_formatter<char>::operator() at formatter.hpp:157 0x5837a4
    boost::log::v2s_mt_nt5::() at formatter_parser.cpp:143 0x4176c6
    boost::log::v2s_mt_nt5::aux::light_function<void() at="" light_function_pp.hpp:280="" 0x41657f="" <br=""> boost::log::v2s_mt_nt5::aux::light_function<void ()="" at="" light_function_pp.hpp:391="" 0x58d38c="" <br=""> boost::log::v2s_mt_nt5::basic_formatter<char>::operator() at formatter.hpp:157 0x5837a4
    boost::log::v2s_mt_nt5::() at formatter_parser.cpp:143 0x417442
    boost::log::v2s_mt_nt5::aux::light_function<void() at="" light_function_pp.hpp:280="" 0x416341="" <br=""> boost::log::v2s_mt_nt5::aux::light_function<void ()="" at="" light_function_pp.hpp:391="" 0x58d38c="" <br=""> boost::log::v2s_mt_nt5::basic_formatter<char>::operator() at formatter.hpp:157 0x5837a4
    boost::log::v2s_mt_nt5::() at formatter_parser.cpp:143 0x4176c6
    boost::log::v2s_mt_nt5::aux::light_function<void() at="" light_function_pp.hpp:280="" 0x41657f="" <br=""> boost::log::v2s_mt_nt5::aux::light_function<void ()="" at="" light_function_pp.hpp:391="" 0x58d38c="" <br=""> boost::log::v2s_mt_nt5::basic_formatter<char>::operator() at formatter.hpp:157 0x5837a4
    boost::log::v2s_mt_nt5::sinks::basic_formatting_sink_frontend<char>::feed_record<boost::log::v2s_mt_nt5::aux::fake_mutex, boost::log::v2s_mt_nt5::sinks::text_file_backend="">() at basic_sink_frontend.hpp:440 0x4d56ec
    boost::log::v2s_mt_nt5::sinks::basic_formatting_sink_frontend<char>::try_feed_record<boost::mutex, boost::log::v2s_mt_nt5::sinks::text_file_backend="">() at basic_sink_frontend.hpp:489 0x4d696b
    boost::log::v2s_mt_nt5::sinks::synchronous_sink<boost::log::v2s_mt_nt5::sinks::text_file_backend>::try_consume() at sync_frontend.hpp:145 0x4ce7a8
    boost::log::v2s_mt_nt5::core::push_record_move() at core.cpp:627 0x458813
    push_record() at core.hpp:308 0x4dacba
    boost::log::v2s_mt_nt5::sources::basic_logger<char, boost::log::v2s_mt_nt5::sources::severity_channel_logger_mt<mgp::tl::LoggingSeverity,="" std::string="">, boost::log::v2s_mt_nt5::sources::multi_thread_model<boost::log::v2s_mt_nt5::aux::light_rw_mutex> >::push_record_unlocked() at basic_logger.hpp:268 0x4dacba
    boost::log::v2s_mt_nt5::sources::basic_composite_logger<char, boost::log::v2s_mt_nt5::sources::severity_channel_logger_mt<mgp::tl::LoggingSeverity,="" std::string="">, boost::log::v2s_mt_nt5::sources::multi_thread_model<boost::log::v2s_mt_nt5::aux::light_rw_mutex>, boost::log::v2s_mt_nt5::sources::features<boost::log::v2s_mt_nt5::sources::severity<mgp::tl::LoggingSeverity>, boost::log::v2s_mt_nt5::sources::channel<std::string>, void, void, void, void, void, void, void, void> >::push_record() at basic_logger.hpp:473 0x4db75f
    boost::log::v2s_mt_nt5::aux::record_pump<boost::log::v2s_mt_nt5::sources::severity_channel_logger_mt<mgp::tl::LoggingSeverity, std::string=""> >::~record_pump() at record_ostream.hpp:279 0x4b6056
    _fu10___ZSt4cout() at mainThread.cpp:33 0x402145
    main() at mainThread.cpp:54 0x402cdd
    <gdb

     
  • Andrey Semashev

    Andrey Semashev - 2013-06-13

    Let me get this straight. You have a dll, which links statically to Boost.Log. No other dlls or the application itself uses Boost.Log in any way (not even includes its headers). Your application links normally with your dll (no /delayload or LoadLibrary stuff). And the application crashes before entering main(). Also, you have RTTI and exceptions enabled when building all dll/exe. Is that all correct?

    If so, then I don't see how this could be related to the DisableLogging parameter as the config file is only loaded from inside main(), unless I'm missing something. The only source of problems I can see is some global initialization issue. I can't tell anything more specific without symbol names.

    What you can try:

    1. Try linking dynamically with Boost.Log and other Boost libraries.
    2. Try building everything as a monolithic exe and see if anything changes.
    3. Try disabling some functionality to see if it triggers some unexpected code paths. E.g. remove start()/stop() and replace them with a regular logger object.
    4. Try adding more debug output with puts/printf (avoid STL streams for now).
     
  • Andrey Semashev

    Andrey Semashev - 2013-06-13

    Also, what gcc version do you use?

     
  • RaRi

    RaRi - 2013-06-13

    Hi Andrey,

    I'm using MinGW. gcc version is 4.7.2.

    As mentioned in the posts above. I've created a simple test application which links statically to the boost.log libraries (libboost_log_setup-mgw47-mt-1_53.a and libboost_log-mgw47-mt-1_53.a). Within this test executable I include my the boost.log specific logging environment, like stated in this code:
    (Logging.cpp:
    http://codeviewer.org/view/code:344e
    "Logging.hpp"-file:
    http://codeviewer.org/view/code:344f
    ).

    Within the main application I first create a worker thread, which doesn't nothing except to invoke my boost.log-specific logging macro. After the worker thread has been created I also invoke my logging macro within the main. The crash happens...

    In case I disable the creation of a worker thread within the main, everything goes fine with the loggging. Not crash, no SIGSEV...

    You're right, I use the following configuration file to configure my boost.log-based mechanism. In case I turn the boost-logging in this configuration file off, no crash happens in the multi-thread-version of my test application.

    The configuration file is read from within the main function. But please take a look here to understand the test application. http://codeviewer.org/view/code:344c

    So please forget currently the DLL stuff. I have created the test application, as I was not sure, if the DLL causes the problems. But actually I figured out, that even in a simple and multi-threaded test application Boost.log seems to produce the crash on Windows XP-bases machines. Maybe the "msvcrt.dll" is not thread-safe...

    ...what would you suggest to continue with?

     
  • RaRi

    RaRi - 2013-06-13

    ...ahh,

    here is the configuration file:http://codeviewer.org/view/code:3454

     
<< < 1 2 3 > >> (Page 2 of 3)

Log in to post a comment.