Ha Klocwork rilevare mai funzioni chiamate?
Domanda
il mio codice è un mix di diversi pezzi da vecchio codice.
Vorrei cancellare tutte le funzioni non utilizzate al fine di mantenere il codice semplice.
Is Klocwork lo strumento? Come lo faccio?
Grazie,
Moshe.
Soluzione
Si potrebbe utilizzare le opzioni -p
o -pg
per gcc
al codice di causa da aggiungere al prologo ed epilogo di ogni funzione in modo che un database profilo viene scritto quando viene eseguito il programma. Il prof
strumento viene utilizzato per analizzare l'output di -p
e gprof
per -pg
. Questi strumenti producono rapporti che mostrano quello che sono stati utilizzati funzioni, quante chiamate, e quanto tempo è stato speso in ciascuno. le funzioni non utilizzate verranno a mancare dal database dei profili.
Si potrebbe anche usare gcov
per ottenere un rapporto di quali linee di codice sono state effettivamente eseguite. verranno eseguite le funzioni mai chiamati 0 volte ....
Altri suggerimenti
Klocwork troverà funzioni / metodi non utilizzati. V'è un correttore confezione particolare è possibile scaricare sul my.klocwork.com (se si dispone di un account) che vi darà queste pedine speciali.
Non ho familiarità con Klocwork, ma gcc
ha la possibilità -Wunused-function
avvertimento che rileva funzioni più non richiamato. -Wunused-function
fa parte del -Wall
.
Klockwork pretende di rilevare funzioni non richiamato. La sua utilizzato per l'analisi statica solo.
È possibile controllare in questo modo:
foo()
{
char *a;
a = malloc(100);
}
bar()
{
char a[100];
}
main()
{
bar();
}
Questo probabilmente segnalare perdita nella funzione foo che è in realtà fuori luogo. Tuttavia, come suggerito Schot si può guardare in opzioni del compilatore.