Alla ricerca di un analizzatore di codice sorgente gratuito (albero delle dipendenze delle funzioni) [chiuso]

StackOverflow https://stackoverflow.com/questions/1408908

  •  05-07-2019
  •  | 
  •  

Domanda

Qualcuno sa dove posso trovare un'utilità / un'applicazione in esecuzione su Windows che analizza l'origine C e genera un albero delle dipendenze funzionale?

Quello che sto cercando è qualcosa del genere:

  

PrintString- > PrintCharacter- > PrintByte- > Printf

È stato utile?

Soluzione

È quasi certamente eccessivo, ma puoi farlo per C, C ++, PHP, Java, C # e altro con Doxygen (se hai Graphviz dot installato). Ecco una pagina con un albero di chiamata di esempio generato da Doxygen / dot.

Doxygen funziona bene su Windows e può generare HTML e pochi altri formati .

Altri suggerimenti

Gli strumenti che leggono l'origine ma non capiscono il linguaggio di programmazione in un senso semantico profondo possono solo darti un'approssimazione del grafico della chiamata. (Cosa succede se una chiamata si verifica in una macro? Cosa succede se quella chiamata si verifica all'interno di un preprocessore disabilitato condizionalmente? Cosa succede se la chiamata è indiretta?) Se questo è abbastanza buono, e davvero non ti interessa sapere cosa fanno le chiamate indirette, allora strumenti come Doxygen e CScope saranno probabilmente utili.

Se si desidera un grafico delle chiamate accurato, è necessario che uno strumento ne costruisca uno utilizzando la conoscenza completa della lingua. Frama-C (vedi altra risposta) AFAIK è uno, anche se non so come gestisce le macro e le chiamate indirette.

Non gratuito, ma il DMS Software Reengineering Toolkit e il suo front-end C hanno piena capacità di elaborazione macro / preprocessore C e costruisce grafici di chiamata per un sistema di file. Include specificamente un'analisi point-to nella sua costruzione del grafico delle chiamate per darti un'approssimazione conservativa di dove vanno le chiamate di funzioni indirette. Vedi esempio di grafico delle chiamate con archi neri (chiamate dirette) e archi blu (in modo conservativo analizzato) chiamate indirette.

Molti strumenti producono questo tipo di grafico di chiamata. Doxygen potrebbe avere la maggior parte delle opzioni di presentazione per i risultati, essendo una "programmazione alfabetica" strumento al suo interno. Lo strumento open source su http://frama-c.cea.fr/ produce grafici di chiamata (anche nel formato punto) e cerca di raggruppare le funzioni per "servizi" automaticamente: http://img23.yfrog.com/img23/8180/9il.png

CodeInsight è un editor commerciale che ha la funzionalità di CTAGS / CSCOPE inserita. Può visualizzare anche i grafici dell'albero delle chiamate (e quasi ogni altra relazione).

Source Navigator sembra essere di nuovo in fase di sviluppo (l'ultima versione di SourceNav NG è stata nel febbraio di quest'anno). Source Navigator può darti alberi di chiamata, dipendenze di classe, ecc. Non ho provato le versioni recenti. Funziona su Windows o X11.

http://sourcenav.berlios.de/

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