Впервые я включил MSAN в Clang, что -то вполне кроме Asan, которое доступно только на Clang, а не в GCC, и я начал получать некоторые ошибки. Я посмотрел на проблему, и, по -видимому, в начале моей программы, перед основной, т.е. динамическая инициализация статической переменной, у меня было: < /p>
std::ofstream outFile(filepath.c_str(), std::ios::binary | std::ios::out);
outFile.good(); // THIS IS WHAT RAISED THE MSAN ERROR
< /code>
Аналогично, после основных выходов у меня есть файл журнала, автоматически очищать в файл, и когда я вызову: < /p>
std::filesystem::exists()
< /code>
Я получаю ошибку MSAN: < /p>
==712701==WARNING: MemorySanitizer: use-of-uninitialized-value
< /code>
Важно понимать, что использование единолизованного значения не означает, что интуитивно вы думаете в качестве единолизированного значения. Например, это: < /p>
int main()
{
{
PointerClass ptr;
TargetClass target;
ptr.target = ⌖
}
}
< /code>
Если PoinderClass использует участника TargetClass после уничтожения, то он будет подхвачен только MSAN, а не Asan (см. Этот вопрос). Это означает, что, насколько я знаю, GCC (который не поддерживает MSAN), никогда не может забрать эту ошибку. В любом случае, я пытаюсь сказать, что MSAN использует: < /p>
WARNING: MemorySanitizer: use-of-uninitialized-value
< /code>
для обозначения использования после бесплатного, поэтому вы не можете использовать описание сообщения каким -либо конкретным диагностическим способом.std::ofstream::good();
< /code>
перед основным или: < /p>
std::filesystem::exists()
< /code>
После основного неопределенного? Я проверил cppreference, но он ничего не говорит о том, что это запрещено.
Подробнее здесь: https://stackoverflow.com/questions/797 ... has-exited
Разве файл не разрешен до Main или после того, как Main вышел? ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1758795982
Anonymous
Впервые я включил MSAN в Clang, что -то вполне кроме Asan, которое доступно только на Clang, а не в GCC, и я начал получать некоторые ошибки. Я посмотрел на проблему, и, по -видимому, в начале моей программы, перед основной, т.е. динамическая инициализация статической переменной, у меня было: < /p>
std::ofstream outFile(filepath.c_str(), std::ios::binary | std::ios::out);
outFile.good(); // THIS IS WHAT RAISED THE MSAN ERROR
< /code>
Аналогично, после основных выходов у меня есть файл журнала, автоматически очищать в файл, и когда я вызову: < /p>
std::filesystem::exists()
< /code>
Я получаю ошибку MSAN: < /p>
==712701==WARNING: MemorySanitizer: use-of-uninitialized-value
< /code>
Важно понимать, что использование единолизованного значения не означает, что интуитивно вы думаете в качестве единолизированного значения. Например, это: < /p>
int main()
{
{
PointerClass ptr;
TargetClass target;
ptr.target = ⌖
}
}
< /code>
Если PoinderClass использует участника TargetClass после уничтожения, то он будет подхвачен только MSAN, а не Asan (см. Этот вопрос). Это означает, что, насколько я знаю, GCC (который не поддерживает MSAN), никогда не может забрать эту ошибку. В любом случае, я пытаюсь сказать, что MSAN использует: < /p>
WARNING: MemorySanitizer: use-of-uninitialized-value
< /code>
для обозначения использования после бесплатного, поэтому вы не можете использовать описание сообщения каким -либо конкретным диагностическим способом.std::ofstream::good();
< /code>
перед основным или: < /p>
std::filesystem::exists()
< /code>
После основного неопределенного? Я проверил cppreference, но он ничего не говорит о том, что это запрещено.
Подробнее здесь: [url]https://stackoverflow.com/questions/79774685/is-file-io-not-allowed-before-main-or-after-main-has-exited[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия