Ho installato Clang nella mia macchina (ubuntu) per trovare perdite di memoria nel mio codice C. Ho scritto un codice di esempio al fine di verificare il funzionamento di esso che è la seguente:Come trovare perdite di memoria con Clang
/* 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;
}
ho trovato alcune opzioni in internet per compilare come
$ scan-build clang --analyze hello.c
e
$ scan-build clang -fsanitize=address hello.c
Ma nessuno di loro mostra segni di perdita di memoria.
scan-build: Utilizzo '/ usr/bin/clang' per l'analisi statica
scan-build: Rimozione directory '/ tmp/scan-build-2015-07-02-122717-16928-1' perché non contiene report.
scan-build: nessun bug trovato.
Qualcuno può gentilmente dire come utilizzare correttamente Clang per il rilevamento delle perdite di memoria.
Utilizzare [valgrind] (http://valgrind.org) durante il test del programma. Tali bug sono impossibili da trovare staticamente nel caso generale (ma alcuni strumenti potrebbero trovare alcuni bug in modo euristico o conservativo). E '-fsanitize = address' aggiunge * i controlli di runtime *, quindi è necessario eseguire il programma. –
hai provato '$ scan-build clang -fsanitize = indirizzo -g ciao.c'? –
$ scan-build clang -fsanitize = indirizzo -g ciao.c sì ho provato –