C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

tote Klassen in Quelltext finden

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Meinert Schwartau
Guest





PostPosted: Thu May 27, 2004 8:28 am    Post subject: tote Klassen in Quelltext finden Reply with quote



Hallo, ich habe folgendes Problem:
Ich muss wissen, welche Klassen in meinem (sehr großen) C++ Quelltext
nicht mehr von der Anwendung aufgerufen werden. Weiß jemand, ob es ein
freies Tool gibt dass automatisch "tote" Klassen findet?

mfG Meinert Schwartau

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
King Leo - Martin Oberzal
Guest





PostPosted: Thu May 27, 2004 9:44 pm    Post subject: Re: tote Klassen in Quelltext finden Reply with quote



Meinert Schwartau wrote:

Quote:
Ich muss wissen, welche Klassen in meinem (sehr großen) C++ Quelltext
nicht mehr von der Anwendung aufgerufen werden. Weiß jemand, ob es ein
freies Tool gibt dass automatisch "tote" Klassen findet?

Naja, wenn du eine statische Biblothek baust, und diese dann in einem C++
Programm linkst, dann verwendet ein guter Linker nur jene obj Dateien, die
auch tatsächlich verwendet werden.

Also, wenn du den Quellcode zum Linker hast, dann kannst du dich ja
reinhacken....

Ansonsten würd ich grep und awk empfehelen.

Gruß, Martin!
--
Forget GNU Stow, use the power of XStow: http://xstow.sourceforge.net

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Andreas Kasparz
Guest





PostPosted: Fri May 28, 2004 8:52 am    Post subject: Re: tote Klassen in Quelltext finden Reply with quote



On 2004-05-27, *Meinert Schwartau* wrote:
Quote:
Ich muss wissen, welche Klassen in meinem (sehr großen) C++ Quelltext
nicht mehr von der Anwendung aufgerufen werden. Weiß jemand, ob es ein
freies Tool gibt dass automatisch "tote" Klassen findet?

cxref

<http://www.gedanken.demon.co.uk/cxref/>

Gruß,
A.
--
Andreas Kasparz, Dresden, Germany

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Heinz Saathoff
Guest





PostPosted: Fri May 28, 2004 12:11 pm    Post subject: Re: tote Klassen in Quelltext finden Reply with quote

Andreas Kasparz schrieb...
Quote:
On 2004-05-27, *Meinert Schwartau* wrote:
Ich muss wissen, welche Klassen in meinem (sehr großen) C++ Quelltext
nicht mehr von der Anwendung aufgerufen werden. Weiß jemand, ob es ein
freies Tool gibt dass automatisch "tote" Klassen findet?

cxref

http://www.gedanken.demon.co.uk/cxref/

Dort steht aber "(The cxref program only works for C not C++, I have no
plans to produce a C++ version.) "
Also nix mit toten C++ Klassen finden.

- Heinz

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Karl Heinz Buchegger
Guest





PostPosted: Fri May 28, 2004 1:25 pm    Post subject: Re: tote Klassen in Quelltext finden Reply with quote

Meinert Schwartau wrote:
Quote:

Hallo, ich habe folgendes Problem:
Ich muss wissen, welche Klassen in meinem (sehr großen) C++ Quelltext
nicht mehr von der Anwendung aufgerufen werden. Weiß jemand, ob es ein
freies Tool gibt dass automatisch "tote" Klassen findet?


So wie ich das sehe, ist es in C++ gar nicht so einfach rauszufinden
ob eine Klasse irgendwo benutzt wird oder nicht. Stichwort: Polymorphie

In reinem Standard C++ geht's ja noch. Aber mal ehrlich: In der
realen Welt kommst mit Standard C++ nicht sehr weit. Irgendwelche
zusätzlichen Libraries hat doch jeder dabei. Und nur mit der Kenntnis
der Header Files kann man nicht entscheiden, ob nicht innerhalb der
Library ein Objekt einer abgeleiteten Klasse erzeugt wird oder nicht,
und wenn ja unter welchen Umständen.

--
Karl Heinz Buchegger
[email]kbuchegg (AT) gascad (DOT) at[/email]

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Marcel Müller
Guest





PostPosted: Fri May 28, 2004 5:33 pm    Post subject: Re: tote Klassen in Quelltext finden Reply with quote

Meinert Schwartau wrote:
Quote:
Hallo, ich habe folgendes Problem:
Ich muss wissen, welche Klassen in meinem (sehr großen) C++ Quelltext
nicht mehr von der Anwendung aufgerufen werden. Weiß jemand, ob es ein
freies Tool gibt dass automatisch "tote" Klassen findet?

Flls der Linker eine Möglichkeit bietet im Map-File eine Cross-Reference
List anzubieten, wäre das ein erster Ansatz. => Unbenutzte Symbole
Allerdings muß dann immernoch sichergestellt werden, daß es keine
Referenz von innerhalb des gleichen Objektmoduls gibt.
Wenn jede Klasse in einem eigenen Objektmodul liegt, kann man die Sache
mit der Cross-Reference-List aber durchaus anwenden.

Alternativ kann man auch alle Objektmodule in eine statische Bibliothek
packen und dan mit dem main-Modul linken. Dann reicht bereits die Liste
der eingebundenen Module (aus der Lib). Das kann auch durch zyklische
Referenzen nicht ausgetrickst werden.

Problematisch wird die Sache bei template Klassen.


Marcel

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Michael Schlenger
Guest





PostPosted: Sun Jun 13, 2004 8:15 pm    Post subject: Re: tote Klassen in Quelltext finden Reply with quote

On 27 May 2004 01:28:32 -0700, [email]meinert.schwartau (AT) globefuel (DOT) com[/email]
(Meinert Schwartau) wrote:

Quote:
Hallo, ich habe folgendes Problem:
Ich muss wissen, welche Klassen in meinem (sehr großen) C++ Quelltext
nicht mehr von der Anwendung aufgerufen werden. Weiß jemand, ob es ein
freies Tool gibt dass automatisch "tote" Klassen findet?

Extrem schwierig. Ein solcher "xrefer" müsste prinzipiell den parser

des Compiler komplett nachbilden (oder enthalten). Warum?

Z.B. wegen der Möglichkeit zum Überladen. Es bedarf einiges an
Aufwand, im folgenden das korrekte f zu identifizieren:

void f( int );
void f( double );

void g( long value )
{
f( value );
}

Der Parser muss also EXAKT die vom Compiler verwendeten
Auflösungsverfahren verwenden. Je nach Hersteller muss dies nicht
unbedingt dem C++ Standard entsprechen. Schließlich will man ja die
tatsächlich aufgerufene Funktion finden, und nicht die vielleicht nach
dem Standard Korrekte.

Nun multipliziere man die Komplexität des einfachen name lookup noch
mit der von namespaces. Koenig-Lookup natürlich nicht zu vergessen.

Hat man nun noch keine grauen Haare, kann man das leicht erreichen,
wenn man Schablonen hinzu nimmt:

void f( int );
void f( double );

template< typename T>
void g( T value )
{
f( value );
}

Hier kommt es offensichtlich auf den Instanziierungkontext an, welches
f in g verwendet wird.

Übrigends: Über die Feinheiten der Semantik bei Schablonen hat das
Komitee jahrelang debattiert. Selbst heute gibt es noch unklare Fälle!

Ergo: Besinne dich auf eine der Grundparadigmen der Programmierung in
typisierten Sprachen, also auch C++:

The Compiler Is Your Friend...

Will heißen: Lass die Klasse(n) einfach raus, und rekompiliere dein
Projekt. So was kann man bequem über Nacht machen. Wird das Teil
irgendwo referenziert, kriegst du eine Fehlermeldung.

Wenn es sich um ein sehr großes Projekt handelt, ist dies in der
Praxis die einzig mögliche Lösung. Man wird natürlich erst mal greppen
und so die Zahl der Compilerläufe zum Ausprobieren erheblich
reduzieren können.

















------------------------------------------------
Michael Schlenger
------------------------------------------------

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.