Esiste uno strumento per elencare le variabili globali utilizzate ed emesse da una funzione C?

Voglio fare una lista di variabili / macro globali consumate da una funzione e uscite dalla funzione. Ad esempio, per:

void myfn(void) { out1 = in + 1; out2 = 2; } 

..lo strumento elencerebbe gli input come ‘in’ e le uscite come ‘out1’ e ‘out2’.

Qualcuno sa di un tale strumento?

Comprensione per C / C ++ ( http://www.scitools.com/products/understand/ )

Il nostro software DMS Reengineering Toolkit è uno strumento di analisi dei programmi personalizzabile con un front end C di qualità di produzione.

Analizza C, crea AST e tabelle di simboli, fornisce controllo e analisi del stream di dati, costruisce grafici di chiamate globali e ha punti per analisi. Può essere personalizzato per estrarre queste informazioni; infatti, abbiamo consegnato uno strumento personalizzato basato su DMS a un grande produttore di veicoli per creare uno strumento che estraesse quasi esattamente queste informazioni.

Se si limitano solo le informazioni sulla tabella dei simboli, è ansible estrarre “direttamente letture o scritture” come nell’esempio. Se si utilizzano le informazioni sul grafico delle chiamate, è ansible rilevare letture o scritture su globali causate da chiamate ad altre funzioni. Se si utilizza l’analisi point-to, è ansible rilevare (in modo conservativo) le letture o le scritture su variabili globali tramite l’indirizzamento indiretto.

Puoi provare anche CppDepend , il NDepend come per C \ C ++

Clang almeno può farlo, ma potrebbe non essere il modo più semplice. Dovrai interfacciarti con l’API C ++.