Ich analysiere einige große C++ - Projekte. Die einzige Funktionalität, die ich wirklich brauche, ist das Auffinden von Funktionsaufrufen.C++ - Code analysieren - CSCope
Dafür verwende ich gerade cscope
, aber ich entdeckte ein großes Problem - es scheint, dass cscope
ist nicht in der Lage, Methoden, z. object.function()
.
Also, ist es möglich, irgendwie die Einstellungen von cscope
zu ändern? Oder, wenn es nicht möglich ist, C++ mit cscope
zuverlässig zu parsen, könnten Sie bitte einen anderen Parser empfehlen, der "besser ausgestattet" ist?
Ich verwende cscope
so einfach wie möglich, wie folgt aus:
cscope -k -L3importantFunc path_to_some_file
Ich bin nicht die Datenbank separat zu schaffen, ich denke, es sollte auf diese Weise für eine bestimmte Datei ausreichen.
Ich habe bereits versucht Clang, aber es war nicht viel besser, da es nicht möglich ist, Funktionen in bedingten Kompilation Blöcken eingeschlossen zu suchen.
https://github.com/Andersbakken/rtags –
Als wilde Vermutung, könnte das Problem sein, dass CScope für die Analyse der Sprache C und nicht C++? –
Wenn Sie den Präprozessor vor dem Analysieren über den Quellcode ausführen, müssen Sie sich keine Bedingungsblöcke für den Präprozessor vornehmen. Möchten Sie Funktionsaufrufe in deaktivierten pp bedingten Blöcken finden? Was passiert, wenn der bedingte Block um die Funktionskopfzeile gewickelt wird? Was passiert, wenn es um Teile der Argumentliste gewickelt wird? –