2010-02-25 3 views

Antwort

1

Clang zumindest kann dies tun, aber es könnte nicht der einfachste Weg sein. Sie müssen mit der C++ API davon interagieren.

3

Unser DMS Software Reengineering Toolkit ist ein anpassbares Programmanalyse-Tool mit einer Produktionsqualität C Front End.

Es analysiert C, erstellt ASTs und Symboltabellen, bietet Kontroll- und Datenflussanalysen, erstellt globale Aufrufdiagramme und verfügt über Punkte zur Analyse. Es kann angepasst werden, um diese Informationen zu extrahieren; In der Tat lieferten wir einem großen Fahrzeughersteller ein maßgeschneidertes DMS-basiertes Tool, um ein Werkzeug zu erstellen, mit dem fast genau diese Informationen extrahiert werden können.

Wenn Sie sich nur an die Symboltabelleninformationen halten, können Sie wie in Ihrem Beispiel "direkt lesen oder schreiben" extrahieren. Wenn Sie die Anrufdiagramminformationen verwenden, können Sie Lese- oder Schreibvorgänge für Globals erkennen, die durch Aufrufe anderer Funktionen verursacht wurden. Wenn Sie die Point-to-Analyse verwenden, können Sie (konservativ) Lese- oder Schreibvorgänge für globale Variablen über die Indirektion ermitteln.

+0

Der zweite Link ist falsch. – Patrick

+0

Zweiter Link repariert. Vielen Dank. –

+0

Kann es Laufzeit globalen Variablenzugriff zeigen? –

2

können Sie auch versuchen, CppDepend, die NDepend wie für C \ C++