2016-11-30 5 views
0

Ich versuche, eine ziemlich große Open-Source-Codebasis zu lernen. In der Datei this wird eine Variable m viele Male referenziert, ohne jemals deklariert zu werden (siehe Zeile 819). Ich denke, es muss eine globale Variable sein.Datei suchen, in der globale Variable deklariert wird

Diese Datei enthält jedoch ungefähr zwei Dutzend .h-Dateien. Soweit ich weiß, könnte m in jeder dieser Dateien deklariert sein. Kann ich irgendwie feststellen, welche Datei es deklariert hat, oder muss ich jede .h-Datei durchsuchen?

Ist das die Art von Dingen, für die Sie ein Werkzeug benötigen? Hat Eclipse eine solche Funktion?

+1

In dieser Datei sieht es so aus, als ob 'm' ein Mitglied der Klasse 'g' ist. Schwer zu sagen, was "g" ist, ohne weiter zu graben. Ich vermute, es ist eine Instantiierung der "Spiel" -Klasse, weil "game.h" eine Variable "m" enthält, die eine Karte ist! – JGroven

+0

Wenn 'm' wirklich die globale Variable ist, könnten Sie möglicherweise über kompilierte Objektdateien mit grepping' nm * .o' suchen und das Muster "B m $" verwenden –

+0

Yep - 'game.h' definiert eine globale Instanz von' game' namens 'g', das eine' map' mit dem Namen 'm' enthält. –

Antwort

1

Wenn Sie die Code-Basis lokal heruntergeladen haben, können Sie grep verwenden: https://www.gnu.org/software/grep/manual/grep.html

Beachten Sie, dass grep ein Unix-basierten Befehl ist, so auf der Shell je nicht verfügbar. Wenn Sie Windows verwenden, macht FINDSTR (https://technet.microsoft.com/en-us/library/bb490907.aspx) etwas ähnliches, ist aber nicht so flexibel.

Ein kurzes Beispiel grep würde wie folgt sein:

grep -l -R "some_string" /usr/local/SomeDirectory 
+0

der Ausdruck 'm' tritt tausende Male im Programm dieses Kerls auf. – JGroven

+0

Ich habe das bemerkt. Das macht es besonders schwierig, also muss er entweder manuell nach der ursprünglichen Definition suchen oder eine Art Regex finden, die gut mit Grep funktioniert. Ehrlich gesagt, könnte es einfach einfacher sein, in die Kugel zu beißen und diese 2 Dutzend Header-Dateien zu durchsuchen. – Peter

1

Ich würde den Quellcode herunterladen und ein Projekt von ihm in meiner IDE machen. Ich kann dann die Deklaration über ein Kontextmenü finden.

Wenn es eine elegantere Art gibt würde ich es gerne hören!

Verwandte Themen