Domanda

Attualmente sto eseguendo il refactoring di un progetto C, lanciando circa 1000 avvertimenti contro di me. c'è un modo per evidenziare e filtrare questi avvisi. (ad es. rendere tutti gli avvisi di indice rossi, blu non utilizzati e alcuni altri)

molto probabilmente alcuni idi possono farlo, ma non è una soluzione per me.

È stato utile?

Altri suggerimenti

Questo è davvero di base, ma sto usando grep ...

make 2>&1 | grep --color -iP "\^|warning:|error:|"

solo per attirare rapidamente l'attenzione sulla linea di errore e sulla sezione offensiva indicata da ^ .

inserisci qui la descrizione dell'immagine

Ho trovato altri metodi di uso eccessivo del colore e si finisce con lo stesso problema. Suppongo che potresti anche iniettare sequenze di escape colore con sed .

Gcc 4.9 sembra aver aggiunto questa funzione tramite il flag -fdiagnostics-color: http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html#index-fdiagnostics-color-246

Lo script warn_summary è piuttosto carino

Puoi ottenere un conteggio di tutti i tuoi avvisi, del tipo e anche semplicemente stampare gli avvisi senza tutti gli altri output di gcc.

gcc <...> | tee buildoutput
warn_summary -s 0 -wpass buildoutput
warn_summary -s 0 buildoutput

È possibile reindirizzare l'output della compilazione tramite grep:

make 2> error.txt; grep -e error error.txt

La compilazione in emacs ti dà un po 'di evidenza. Presumibile che i dettagli siano suscettibili di personalizzazione.

Usa M-x compile ed emetti il ??tuo solito comando build (il default è make -k ).

Sto usando pretty make , che formatta e colora piacevolmente l'output di gcc. Il formato rientrato per le opzioni di comando è molto chiaro. Ho finito per hackerarlo per scambiare il popen2 deprecato con sottoprocesso.

Questa risposta riguarda più l'approccio generale alla rielaborazione del vecchio codice C.

Grandi volumi di avvisi di solito sono ripetizioni dello stesso piccolo gruppo di avvisi a causa di alcuni errori nei file di intestazione che sono inclusi ovunque da altri file di codice sorgente.

Se stai eseguendo il refactoring di un vecchio progetto C, molto spesso la maggior parte degli avvertimenti si riduce a varie cose come le vecchie dec di funzione K'n'R, in precedenza i cast erano ora evidenziati con un avvertimento, usando funzioni deprecate, ecc.

Supponendo che tu stia utilizzando (g) make per compilare il progetto, eseguirò la compilazione usando il seguente comando:

gmake 2>&1 | tee results

Quindi puoi dare un'occhiata al file dei risultati e vedere quali sono gli avvisi più popolari che ricevi. Inizia con l'eliminazione di tutti gli avvisi esistenti prima di passare a qualsiasi refactoring della base di codice.

L'esecuzione di make all'interno di vim offre molte possibilità di accoppiare i messaggi di errore e di avviso con i file di origine.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top