2009-09-05 4 views
19

Kcachegrind rockt und es ist meiner Lieblings-Tools, aber von Zeit zu Zeit fehlt mir die Möglichkeit, es in Terminal (z. B. mit ssh) auf dem Remote-Server ausführen.Konsolenalternative von kcachegrind?

Ich weiß, dass es möglich ist, VNC oder X-Server-Weiterleitung einzurichten, aber es ist ziemlich ungeschickt, während ich etwas Einfaches brauche.

Gibt es irgendeine kcachegrind-Konsolenalternative (z. B. ncurses-basiert)?

Antwort

-5

kcachegrind gibt in seiner Hilfe an, dass es ein Frontend zu cachegrind und callgrind ist.

cachegrind und callgrind sind Teile der neuesten Version (3.5) von Valgrind. Also, lade Valgrind von http://valgrind.org/downloads/current.html#current und baue es. Führen Sie valgrind --help aus, es zeigt Ihnen, wie Sie die Callgrind-Funktionalität verwenden.

Für weitere Informationen muss ich wissen, was Sie tun möchten.

+3

ich glaube, Sie nicht wirklich die Frage gelesen. Was ich brauche, ist ein ncurses-basiertes Frontend für callgrind/cachegrind. – pachanga

+0

Die Antwort ist valgrind. Anweisungen zur Verwendung von Valgrind erhalten Sie, wenn Sie valgrind --help ausführen. –

+2

Sie liegen falsch, die Antwort ist nicht valgrind.Valgrind führt nur einen 'run and collect information' Schritt aus, aber kein' view the result' für callgrind & cachegrind – osgx

0

Das Ausführen von Valgrind/Callgrind auf dem Remote-Host scheint eine gute Option zu sein. Oder Sie könnten die Ausgabe von Valgrind oder Callgrind auf Ihren PC scannen und KCachegrind darauf ausführen.

Wenn Sie Emacs verwenden, können Sie es auf dem Remote-Host starten und wie gezeigt here ausführen, wodurch Sie ein Emacs-Frontend für das Valgrind-Tool erhalten.

5

Verwenden Sie SSHFS, um das Remote-Verzeichnis zu mounten, in dem Sie arbeiten (siehe z. B. SSHFS installation instructions for Ubuntu).

Dann einfach ssh in und führen Sie valgrind --tool=callgrind mit den gewünschten Optionen im Remote-Verzeichnis. Da Sie das Verzeichnis lokal gemountet haben, ist es so einfach, die Datendateien mit KCacheGrind zu öffnen, als würden Sie lokal debuggen.

+0

Cachegrind Dateien können sehr groß werden, bis zu mehreren hundert MB. Dies ist bei großen Dateien nicht empfehlenswert, da kcachegrind die gesamte Datei auf einmal liest, was selbst bei einer schnellen Verbindung mehrere Minuten erfordert. –

3

webgrind ist ein in PHP geschriebenes Web-Frontend, das die Ausgabe von XDebug (die das gleiche Format wie Callgrind verwendet) analysiert, also sollte es mit der Ausgabe von Callgrind funktionieren (obwohl ich es noch nicht getestet habe).

+0

"Es implementiert eine Teilmenge der Funktionen von kcachegrind". So z.B. Assembler-Ausgabe wird nicht über Webgrind zugänglich sein – osgx

9

Sie können mit dem Befehlszeilenprogramm callgrind_annotate Basisinformationen und Anmerkungen von Callgrind Ausgabedatei (von valgrind --tool=callgrind erstellt) erhalten. (manual pagesection in docs). Für Dateien, die von cachegrind generiert werden (valgrind --tool=cachegrind), können Sie einen cg_annotate (section in docs) verwenden. Diese Dienstprogramme werden standardmäßig mit valgrind selbst erstellt.

Eine andere Möglichkeit besteht darin, Programm- und Cache/Callgrind-Ausgabedateien auf Ihren Computer zu kopieren und diese dann wie üblich mit lokalem kcachegrind zu analysieren. Aber so kann es schwierig sein, wenn Ihr Rechner kein Unix hat, sondern Windows oder Sie laufen auf inkompatiblen Arch (kcachegrind kann local objdump aufrufen, um Informationen über das Programm zu erhalten).

Ich möchte auch Kommandozeilen-Optionen empfehlen valgrind:

valgrind --tool=cachegrind --branch-sim=yes 
valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes 

Sie können auch festlegen, Cache-Größen für cachegrind mit --I1=32768,8,64 --D1=32768,8,64 --L2=3145728,12,64

Verwandte Themen