оператор струнного потока << crash (malloc_consolidate) - PullRequest
0 голосов
/ 28 января 2011
Program terminated with signal 11, Segmentation fault.
#0  0x0000003663c70485 in malloc_consolidate () from /lib64/libc.so.6
(gdb) bt
#0  0x0000003663c70485 in malloc_consolidate () from /lib64/libc.so.6
#1  0x0000003663c72a6c in _int_malloc () from /lib64/libc.so.6
#2  0x0000003663c74cde in malloc () from /lib64/libc.so.6
#3  0x0000003d364af4aa in operator new(unsigned long) ()
   **/linux2.6-glibc2.3-x86_64/lib64/libstdc++.so.6
#4  0x0000003d364900ee in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) ()
   from **/linux2.6-glibc2.3-x86_64/lib64/libstdc++.so.6

Код:

...
       if (logger->isEnabledFor(Level::ALL)) {\
            std::ostringstream oss; \
            oss << message; \
            logger->forcedLog(Level::ALL, oss.str(), __FILE__, __LINE__); \
        } \
...

Было сказано, что оператор ostringstream << не является повторно вводимой функцией. это правильно? </p>

Спасибо

1 Ответ

0 голосов
/ 29 января 2011

Это должно быть из-за того, что stringstream :: operator << не является реентерабельной функцией. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...