Дезинфицирующее средство памяти ложно положительно на Centos 7, но не на другой платформе

мой тестовый код следующий:

#include <string>
#include <iostream>int main()
{
std::string mylongstring("This is a test string");
std::cout << mylongstring << std::endl;
}

и я компилирую с последним Clang, используя GCC 7.2 toolchain.
clang++ -fsanitize=memory msan.cp

По сути, это является источником проблемы, которую я вижу, пытаясь интегрировать средство очистки памяти в большой программный стек, работающий на сервере centos 7.

И этот маленький пример кода выдает следующую ошибку:

Uninitialized bytes in __interceptor_fwrite at offset 0 inside [0x702000000000, 21)
==34234==WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0x7f2acebbd9f3 in std::basic_streambuf<char, std::char_traits<char> >::sputn(char const*, long) /build/*----*/build-gcc710/x86_64-pc-linux-gnu/libstdc++-v3/include/streambuf:451
#1 0x7f2acebbd9f3 in void std::__ostream_write<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) /build/*----*/build-gcc710/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/ostream_insert.h:50
#2 0x7f2acebbd9f3 in std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) /build/*----*/build-gcc710/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/ostream_insert.h:101
#3 0x4ab06d in main (/home/*----*/intelhackathon/a.out+0x4ab06d)
#4 0x7f2acdbcdc04 in __libc_start_main (/lib64/libc.so.6+0x21c04)
#5 0x41b323 in _start (/home/*----*/intelhackathon/a.out+0x41b323)

SUMMARY: MemorySanitizer: use-of-uninitialized-value /build/*----*/build-gcc710/x86_64-pc-linux-gnu/libstdc++-v3/include/streambuf:451 in std::basic_streambuf<char, std::char_traits<char> >::sputn(char const*, long)
Exiting

Тем не менее, это происходит только на сервере Centos, при попытке этого на моей локальной системе Arch Linux я не вижу никаких ошибок, и это работает, как ожидалось.

Детали сервера:
glibc : 2.17-196.el7
uname -a:
Linux servername 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

У меня в основном нет идей, поэтому я был бы рад любой помощи или даже предложениям о том, что я мог бы попробовать.

Спасибо! 🙂

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]