PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C] Unbenutzte Variablen/Funktionen finden?



Boron
11-02-2007, 19:12
Hallo zusammen,

gibt es eigentlich Tools, die in der Lage sind unbenutze Variablen und Funktionen in C/C++ Kode zu finden?

Ich denke da so an die Situation, wenn in C eine globale Funktion (external linkage) deklariert und definiert wird, diese aber im gesamten Projekt nicht ein einziges Mal aufgerufen wird.
Der Compiler und Linker, den wir verweden (GreenHills für NEC V850), übersetzt solche Funktion und linkt sie auch in die Binärtdatei, was ja nicht nötig wäre, weil niemand die Funktion aufruft.

anda_skoa
11-02-2007, 19:30
Hmm, wenn du bestimmte Funktionen/Variablen in Verdacht hast, ist es nicht am einfachsten danach zu suchen?

Wenn es nirgendwo eine Benutzung gibt, sollte der Namen nirgendwo sonst im Code auftauchen.

Für eine Runtime Analyse muß man gewährleisten können, daß man alle mögliche Exekutionspfade durchläuft, was meistens nicht machbar ist.

Ciao.
_

Boron
11-02-2007, 21:09
Ich habe keine bestimmte Funktion im Verdacht. Deshalb kann ich auch nicht gezielt suchen. Ich stelle mal alle Funktionen unter Generalverdacht :).
Deshalb wollte ich den kompletten Quellkode nach allen Funktionen durchsuchen lassen. Wenn es ein Tool gäbe, das dann aus allen Funktionen diejenigen nennt, die nirgendwo aufgerufen werden, dann könnten diese Funktionen aus dem Kode entfernt werden und die Hexdatei wird kleiner.
Und ich meine auch nicht zur Laufzeit, sondern schon zur Übersetzungszeit.

quinte17
21-02-2007, 10:19
cscope

damit kannst du deinen code scannen lassen und nach den definitionen und aufrufen von funktionen und allem möglichem suchen lassen...
doku lesen und so :D

greetz

Boron
21-02-2007, 17:17
Liest sich schon mal ganz gut auf deren Seite :).
Morgen mal probieren, was das Ding zu leisten im Stande ist.

quinte17
22-02-2007, 13:17
ich verwendes es in verbindung mit vim :)
da kann man dann recht einfach mit
:cs g funktionsname
sich eine schöne liste anzeigen lassen, und dann nach eingabe der auftrittsnummer öffnet er dann automatisch die datei in vim und springt zu der zeile hin...

greetz