Я установил Clang на свой компьютер (ubuntu), чтобы найти утечки памяти в моем коде C. Я написал пример кода, чтобы проверить его работу, который выглядит следующим образом:
/* File: hello.c for leak detection */
#include <stdio.h>
#include <stdlib.h>
void *x;
int main() {
x = malloc(2);
x = 0; // Memory leak
return 0;
}
Я нашел в Интернете несколько вариантов для компиляции, например
$ scan-build clang --analyze hello.c
и
$ scan-build clang -fsanitize=address hello.c
Но ни один из них не показывает никаких признаков утечки памяти.
scan-build: использование '/ usr / bin / clang' для статического анализа
scan-build: удаление каталога '/ tmp / scan-build-2015-07-02-122717-16928-1', поскольку он не содержит отчетов .
scan-build: Ошибок не обнаружено.
Кто-нибудь может любезно сказать, как правильно использовать Clang для обнаружения утечки памяти.
-fsanitize=address
добавляет проверки времени выполнения, так что вам нужно запустить программу. - person Basile Starynkevitch   schedule 02.07.2015$ scan-build clang -fsanitize=address -g hello.c
? - person Sourav Ghosh   schedule 02.07.2015main
. - person molbdnilo   schedule 02.07.2015