2009-07-20 10 views
1

Ich hatte kürzlich die Gelegenheit, einen Entwickler für einen Tag zu beschatten. (Ich arbeite gerade an meinem CS-Abschluss.) Er hat mir ein Tool gezeigt, mit dem man alle möglichen Ausführungspfade durch ein C-Programm erzeugen kann, aber ich kann mich nicht erinnern, wie es heißt, noch habe ich Erfolg gehabt, es zu finden. Ich glaube, es war ein Open-Source-Tool, aber ich bin mir nicht sicher.Code Ausführungspfad Checker?

+4

Warum mailen Sie ihn nicht und fragen Sie? –

+1

Wie aus der Bandbreite der Antworten ersichtlich, ist nicht ganz klar, was Sie fragen. Sind Sie auf der Suche nach einem Code-Coverage-Tool? Damit können Sie sich einen Überblick über den Code verschaffen, der für eine bestimmte Reihe von Läufen Ihres Programms ausgeführt wurde. Oder suchen Sie nach einem Programm, das einen Control-Flow-Graphen allgemein darstellen kann zeigt Ihnen alle möglichen Wege, die für Ihr Programm genommen werden können.) oder suchen Sie nach Testgenerator (ein Programm, das eine Reihe von Eingaben/Tests mit dem Ziel erzeugen kann, große Mengen an Code abzudecken) – Falaina

+0

Ich denke, die Control Flow Graph ist am nächsten zu dem, was ich suche. Das Programm, an das ich gerade gedacht habe, hat etwas Ähnliches getan, aber (zumindest in der Art, wie ich es laufen sah) einfach die Anzahl der Pfade durch eine Methode oder einen Block gemeldet. – Edward

Antwort

1

Worüber Sie nachdenken, denke ich, ist die Codeabdeckung. Es gibt eine Liste von C- und C++ - Coverage-Tools here.

Edit: Es klingt, dass Sie Sie vielleicht auch über zyklomatische Komplexität, die ein Maß für die Komplexität einer Funktion basierend auf Branchen usw. ist fragen. Es gibt eine enorme Anzahl solcher Werkzeuge - ein Ort des googeln sollte Hilfe.

+0

Googling irgendwie hilft, zyklomatische Komplexität Checker für C sind scheinbar schwer zu finden, obwohl ... – Edward

1

GCT?

oder vielleicht covtool?

oder xCover?

Die drei sind in Open Source.

+0

Diese scheinen nicht genau das zu sein, was ich mir angesehen habe ... Das Tool, das er verwendete, zählte genau, wie viele verschiedene Arten eine bestimmte Methode verzweigen konnte, und erzeugte einen Bericht. – Edward