Perché gli strumenti di controllo del codice come FindBugs richiedono una fase di compilazione per funzionare correttamente?

3

Fondamentalmente ho eseguito il plug-in di Intellij Idea chiamato FindBugs-Idea per analizzare il mio codice. Ho corretto tutto ciò che è stato catturato e ho eseguito nuovamente lo strumento, ma continuava a lamentarsi dello stesso errore anche se era stato risolto nel file sorgente. Ha smesso di lamentarsi solo dopo aver ricompilato le mie lezioni. Perché richiede una fase di compilazione? Non dovrebbe essenzialmente cercare nel file sorgente e rilevare un possibile bug? In che modo questi strumenti funzionano in generale?

    
posta Geek 26.07.2012 - 18:03
fonte

2 risposte

6

Findbug esamina il bytecode per identificare i pattern che tendono ad essere bug.

Questo è molto più efficiente dell'analisi del codice sorgente. In sostanza, dovresti analizzare la sorgente per analizzarlo, quindi lascia che il compilatore esistente funzioni per te e concentrati sulla ricerca di bug.

Lavorando con il bytecode compilato, FindBugs può trattare il tuo codice come identico alle librerie di terze parti che usi e indagare su tutti (per assicurarti di chiamare correttamente la libreria).

    
risposta data 26.07.2012 - 18:22
fonte
0

Esistono diversi tipi di strumenti di analisi statica: quelli che operano sul codice sorgente e quelli che operano su un prodotto compilato. Findbugs è un esempio di quest'ultimo, mentre uno strumento come PMD è un esempio del primo. A seconda del tipo di problemi che lo strumento sta tentando di rilevare, la scelta di quale prodotto analizzare può renderlo più facile o più difficile. Ad esempio, gli strumenti che analizzano il codice byte non possono essere utilizzati per trovare problemi che portano a una minore leggibilità del codice, ma possono analizzare qualsiasi cosa compili con lo stesso codice byte.

    
risposta data 26.07.2012 - 19:06
fonte

Leggi altre domande sui tag