CodeScan:

News in V1.0.0.2Beta
In dieser Version ist ein neuer Scan-Modus nutzbar. Hier können die Abhängigkeiten zw. SW-Modulen dargestellt werden. Es werden zunächst alle implementierten Funktionen in den C-Files ermittelt (Parser-Einschränkungen siehe Howto in codescan.zip). Anschließend wird ein Abhängigkeitscheck (Crosscall) durchgeführt. Es ist auch wieder in diesem Modus möglich, über das CFG-File Einfluß auf Grafik-Generierung zu nehmen. Alle ermittelten Funktionen werden zusätzlich im DOT-File inaktiv eingetragen, s.d eine manuelle Freischaltung erfolgen kann für Funktionen, die ggf. zum public API gehören. Funktionen, für die eine Modulabhängigkeit erkannt wurde (Crosscall), werden aktiviert im DOT file eingetragen, s.d. diese in der Grafik erscheinen.

Dieses Tool entstand aus einer Notwendigkeit heraus, für mehrere Softwaretreiber eine Codeanalyse durchzuführen. In einigen Forumbeiträgen zum Thema call tree wird ersichtlich das wohl auch andere hier in vergleichbaren Situationen sind. Vielleicht kann dem ein oder anderem mit diesem Tool eine schnelle Lösungsvariante geboten werden. Die "freien" Tools im Internet waren für die beschriebene Aufgabe entweder von der Bedienung her ungeeignet oder gar auf eine andere Sprachumgebung fokusiert (Java, Perl). Zudem sollte das Tool unterstützend wirken und über die grafische Bewertung Anhaltspunkte für die Abhängigkeiten geben, speziell bei verschiedenen Ablaufebenen (ISR / Main-Task). Das Tool erzeugt zudem auch eine Zwischenstufe (DOT-File), welche vor der Erzeugung des Call graphs noch händisch nachkorrigiert/erweitert werden kann.


Hier einige Features:
- Der betreffende Namensraum der Funktionen ist via Suchstrings einstellbar
- Mit Inversfilter können z.B. Traceausgaben rausgefiltert werden
- Formatierungsvorgaben für graphviz können via CFG-file eingestellt werden
- ein Funktionsparameter kann als Labelname im call graph übernommen werden
- das Zwischenergebnis (DOT-file) kann händisch nachbearbeitet werden
- das Tool ist batchfähig via Programm-Parameter
- Steuerung über CFG file (verschiedene Views oder Projekte)
- ein CFG file kann einfach per Drag & Drop in die GUI gezogen werden

screenshot of the tool

call graph from the example_a

call graph from the example_b

Download-> codescan.zip (1034KB)