Frage

Ich verwende VS2008 für ein C ++ Projekt. Der Code ist ziemlich alt und hat durch viele Hände gegangen. Es gibt mehrere Klassen-Hierarchien, Funktionen, Aufzählungen und so weiter, die nicht mehr verwendet werden.

Gibt es eine Möglichkeit, den Compiler / Linker zur Liste aus Kennungen zu erhalten, die erklärt oder definiert wurde, jedoch werden nicht überall bezeichnet?

War es hilfreich?

Lösung

PC-Lint „gesamtes Projekt“ Analyse (die zusammen mehr Dateien analysieren) kann dies tun. Bitte zögern Sie nicht mich zu kontaktieren, wenn Sie Hilfe benötigen es einrichten.

Andere Tipps

VS wird über Identifikatoren warnen innerhalb einer Funktion deklariert und nicht verwendet wird, können Sie auf Warnstufe 4 bewegen müssen, aber für globale Variablen, und eine Jagd für viele andere potenzielle Probleme, würden Sie gut Fussel oder visuelle Flusen

Nicht sicher Visual C ++, aber die g ++ zu nicht verwendeten Variablen warnt. Sie können versuchen, Ihren Code durch die g passieren ++.

PC-Lint wird dies tun. Allerdings laufen sie nicht mit allem, was ein. Ich habe und hatte 1,2 Millionen Fehler - die ~ 5 pro Zeile gleichgesetzt. Dies wurde stark nach oben gedrückt wird, weil fast jeder UI-Klasse verwiesen resource.h und resource.h viele #defines auflistet, auf die Flusen sagt „definiert mit const int ersetzen“. Für einen guten Startpunkt lesen diesen Beitrag auf der Power of 2 Blog .

Für die naheliegendste nicht verwendeten Erklärungen, eine hohe warnlevel würde die Sache kümmern.

Im Hinblick auf die Identifizierung von nicht genutzten Teilen des Codes, der deadstripper (nicht das Zentrum eines Late-Night-Krimi-Drama zu sein, aber der Mechanismus, der während der Verknüpfung nicht verwendeten Code pflückt) werden Ihnen nur einen Teil des Weges bekommen - was Sie wirklich wollen, ist ein Code-Coverage-Analyse-Tool. Reichlich vorhanden sind, leider alle von ihnen sind ziemlich teuer.

Ein robuster Editor mit gutem Kontext-Tagging und Call-Grafik-Mechanismus wird auch helfen.

Mit Bezug auf Grahams Beitrag:. FWIW Ich habe eigentlich nie die „ersetzen definiert mit const int“ -Meldung mit resource.h Dateien gesehen - obwohl einige andere (zuvor an derselben Stelle definiert) kann ein Schmerz

Unabhängig davon, ob eine bestimmte PC-Lint-Nachricht wird in der Quere von Spek, was Sie dafür suchen, ist eine einfache Sache, um es auszuschalten -en in Ihrer options.lnt Datei. Es lohnt sich auch bewusst die Option -w zu sein, mit dem Sie die Warnstufe auf global ermöglicht (beispielsweise w0 + e766 erlischt alles außer Meldung 766).

Für nicht verwendete Symbole und Erklärungen, werden Sie nach Nachrichten suchen wollen wie 755 (Information - Global Macro verwies nicht), 758 (Information - global Enum nicht bezeichnet), 769 (Information - globale Konstante Aufzählung nicht bezeichnet) und 1714 (Information - Member-Funktion verwies nicht). Denken Sie daran, dass diese in einer einzigen Analyse unterdrückt werden, so dass Sie benötigen gesamte Projektanalyse laufen, sie zu sehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top