Описание тега memory-sanitizer

0 ответов

clang sanitize-blacklist не игнорирует функцию

Я использую clang 7.0.1-6 с -fsatize=memory и -fsanitize-blacklist, чтобы игнорировать унифицированную память в libc. К сожалению, кажется, что msan не игнорирует cap_init или его потомков. $ cat /buildslave/core-ci/build/core/blacklist fun:cap_init…
17 фев '19 в 18:05
1 ответ

Использование Memory Sanitizer с инструментами libC++

Я создал инструментированный libC++, как описано здесь. Я установил флаги, как показано на сайте выше: MSAN_CFLAGS="-fsanitize=memory -stdlib=libc++ -L/path_to/llvm-build-msan/lib -lc++abi -I/path_to/llvm-build-msan/include -I/path_to/llvm-build-msa…
25 окт '17 в 11:05
2 ответа

Средство очистки памяти clang++ сообщает об использовании неинициализированного значения

Этот код взят со страницы gitub IncludeOS. Я немного изменил его, чтобы он компилировался без других заголовочных файлов. find Функция от IncludeOS слишком многословна, поэтому я хочу упростить ее. Но после модификации код ведет себя не так, как я о…
25 ноя '17 в 13:56
1 ответ

Очиститель памяти / адреса vs Valgrind

Я хочу, чтобы какой-то инструмент диагностировал ошибки после освобождения пользователя и неинициализированные ошибки. Я рассматриваю Sanitizer (Память и / или Адрес) и Valgrind. Но я очень мало представляю их преимущества и недостатки. Кто-нибудь м…
3 ответа

Использование дезинфицирующего средства памяти с libstdC++

Я хочу использовать -fsanitize=memory флаг в Clang для анализа программы, как показано ниже: #include <string> #include <iostream> #include <fstream> using namespace std; void writeToFile(){ ofstream o; o.open("dum"); o<<"tes…
16 дек '13 в 18:08
1 ответ

Ошибка очистки памяти: clang5 + msan + fwrite структур с заполненными байтами

Минимальный пример: #include <fstream> struct TFoo { bool Field1_ = false; uint64_t Field2_ = 0; }; int main() { TFoo Foo_{}; const char* filename = "text.txt"; std::ofstream f(filename); f.write((char*)(&Foo_), sizeof(Foo_)); } clang с 5-…
26 янв '18 в 08:48
0 ответов

Использование Memory Sanitizer неинициализированного значения с помощью ifstream

Вот минимальный пример для воспроизведения - #include <iostream> #include <string> #include <fstream> using namespace std; int main() { ifstream names("lol.txt"); if(!names) { cerr << "Not found\n"; return -1; } cout <<…
11 дек '17 в 02:38
2 ответа

Как я могу практически использовать AddressSanitizer и MemorySanitizer?

AddressSanitizer и MemorySanitizer - очень полезные инструменты, но они требуют, чтобы вся программа была соответствующим образом оснащена. (По крайней мере, для версии Clang AddressSanitizer; см. Здесь в документации по MemorySanitizer и в разделе …
15 мар '17 в 22:35
1 ответ

Как заставить MemorySanitizer не останавливаться после одной ошибки

В документации Clang сказано, что "по умолчанию MemorySanitizer завершает работу при первой обнаруженной ошибке". Кто-нибудь знает, как заставить MemorySanitizer не останавливаться на ошибках? Приведенное выше предложение предполагает, что есть спо…
29 сен '17 в 08:05
0 ответов

Не может собрать очищающий память инструментальный libC++, который ссылается только на compile-rt (без libgcc)?

Я хочу использовать очиститель памяти C++ (msan) в репозитории с помощью цепочки инструментов llvm (libC++, libunwind, compiler-rt, clang ...). поэтому первое, что мне нужно сделать, - это создать libC++ с инструментарием MSAN. Из MemorySanitizerLib…
04 мар '19 в 20:01
1 ответ

Изменяет ли включение LLVM MemorySanitizer ABI библиотек

Проекты LLVM. MemorySanitizer имеет довольно сложное для удовлетворения ограничение, заключающееся в том, что все системные библиотеки также должны быть построены с помощью MemorySanitizer. Я думал о некоторых способах включения MSAN для проекта, на…
0 ответов

Увеличьте проблему с неопределенным символом при связывании со статической библиотекой с помощью средства очистки памяти

Я получаю ошибку ниже при создании статических библиотек uhd-типов и компоновке с библиотеками boost v1.74 с флагом дезинфекции памяти -fsanitize=memory. [ 63%] Built target uhd-types [ 65%] Linking CXX executable ../../bin/unit_tests /usr/bin/ld: .…
10 сен '20 в 08:52
2 ответа

Почему средство очистки памяти сообщает об использовании неинициализированного значения для std::map?

Я использую manjaro linux на x86-64. Средство очистки памяти в clang версии 10.0.1 сообщило об ошибке использования неинициализированного значения в std::map, что меня очень удивило. Я сделал что-то не так? $ cat test.cpp #include <map> int ma…
18 сен '20 в 02:48
0 ответов

Ошибка очистителя памяти Clang с встроенными функциями SSE

Вот фрагмент кода, который генерирует внутреннюю ошибку компилятора, если я компилирую и запускаю его с clang с включенным очистителем памяти. В основном он просто помещает некоторые данные в регистр SSE и вызывает функцию для преобразования половин…
07 сен '20 в 20:38
1 ответ

Дезинфицирующим средствам Clang не хватает чтения из неинициализированной памяти

У меня есть следующий код, который, я уверен, считывается из памяти мусора, но дезинфицирующие средства clang не жалуются. Могу ли я что-то сделать, чтобы они сработали, или я должен просто принять это как ограничение / ошибку? #include <algorith…
29 июл '21 в 16:04
0 ответов

Что означает `Неинициализированное значение было создано путем освобождения кучи`?

Сообщение об ошибке получено с помощью clang sanitizer, когда free() называется. Я не понимаю, как освобождение памяти может создать здесь ценность для выдачи предупреждения?
14 сен '21 в 13:52
1 ответ

MemorySanitzer предупреждает об использовании неопределенной памяти в struct stat; Я все же проверяю возвращаемое значение `stat`, хотя

struct stat st; if (stat(python_pkgdir, &st)) { qd_error_errno(errno, "Cannot find Python library path '%s'", python_pkgdir); return NULL; } else if (!S_ISDIR(st.st_mode)) { // dispatch.c, line 99 qd_error(QD_ERROR_RUNTIME, "Python library path…
19 ноя '21 в 11:40
0 ответов

Как создать общую библиотеку с очистителем памяти с помощью clang++?

Я использовал clang-10 с ubuntu 18.04. Я пытаюсь создать общую библиотеку с очистителем памяти. #include <stdio.h> int foo(int argc, char** argv) { int* a = new int[10]; a[5] = 0; if (a[argc]) printf("xx\n"); return 0; } Объект построен с: cla…
19 дек '21 в 03:41
0 ответов

Ложные срабатывания MemorySanitizer с длинным списком vararg

При запуске набора тестов пакета igraph с MemorySanitizer (clang 13.0) я получаю ложные срабатывания в некоторых (но не во всех) случаях, связанных с очень длинными списками vararg, например здесь: https://github.com/igraph/igraph/blob/70e9e32748144…
20 мар '22 в 20:02
1 ответ

Как мне заставить Clang-дезинфицирующее средство памяти игнорировать данные из определенных библиотек?

Например, я хотел бы игнорировать sqlite и zlib, потому что я знаю, что они хорошо протестированы. я схватил zpipe.cпример и построил его следующим образом. Имейте в виду, что я использую -lzи не строить zlib самостоятельно. Я только сам создаю zpip…
06 апр '22 в 17:51