Con clang e graphviz posso generare il grafo di chiamata per un codice C/C++ as explained in this answer.Come posso generare un grafico del flusso di dati con clang o altri strumenti?
Ora ho bisogno di un diagramma del flusso di dati calcolato su un codebase molto grande (è C per la maggior parte), questo codebase è un software in cui lo strumento di costruzione è cmake
.
Quindi il mio problema è, dato il nome di una struttura dati, come posso recuperare i nomi delle funzioni e dei file usando/implementando questa struttura?
C'è un po 'scarsa riferimento ad alcuni algoritmi di data mining di flusso dei dati all'interno Libtool
dal progetto clang (non sono nemmeno sicuro se si tratta di qualcosa di stabile o in fase di sviluppo), ma ho trovato nulla su clang
stesso o scan-build
.
Come posso generare questa informazione? Ho davvero bisogno di questo, dato un nome che vorrei recuperare dove è usato nel codice, praticamente tutti gli strumenti di analisi statica che ho esaminato si concentrano su funzioni e metodi, ho bisogno di controllare l'utilizzo di una struttura dati in clang
.
EDIT:
Sto anche pensando di utilizzare doxygen per la documentazione, per cui se l'output XML di doxygen potrebbe essere utile per qualche strumento, posso usarlo.
Questo potrebbe essere un po 'bizzarro, ma hai pensato di caricare l'intero codebase in Eclipse, quindi usare le funzioni di ricerca di Eclipse per farlo? – slugonamission
@slugonamission bene, dato che non riesco a trovare niente che funzioni ...; nome quali strumenti dovrei usare con Eclipse, so che CDT è la suite Eclipse per C e C++, ma non so cosa viene usato per questo tipo di analisi. – algl
non è proprio per il flusso di dati, ma i tuoi requisiti sembrano proprio essere quello di controllare dove viene utilizzata una struttura di dati. Usando CDT + Eclipse, puoi almeno trovare graficamente dove viene utilizzata una struttura dati (in uno dei menu di ricerca da qualche parte), ma non un DFG completo. – slugonamission