2009-09-05 20 views
19

Kcachegrind rocas y es de mis herramientas favoritas, sin embargo, de vez en cuando me falta la capacidad de ejecutarlo en la terminal (por ejemplo, utilizando ssh) en el servidor remoto.Consola alternativa de kcachegrind?

Sé que es posible configurar el reenvío de VNC o X-server, pero es bastante torpe, pero necesito algo simple.

¿Hay alguna alternativa de la consola kcachegrind (por ejemplo, basada en ncurses)?

Respuesta

-5

kcachegrind afirma en su ayuda que es una interfaz para cachegrind y callgrind.

cachegrind y callgrind son partes de la última versión (3.5) de valgrind. Por lo tanto, descargue valgrind desde http://valgrind.org/downloads/current.html#current y compilelo. Ejecute valgrind --help, le muestra cómo usar la funcionalidad de callgrind.

Para obtener más información, necesito saber lo que quiere hacer.

+3

Creo que en realidad no leer la pregunta. Lo que necesito es una interfaz basada en ncurses para callgrind/cachegrind. – pachanga

+0

La respuesta es valgrind. Para obtener instrucciones sobre cómo usar valgrind, ejecute valgrind --help. –

+2

estás equivocado, la respuesta no es valgrind.Valgrind solo hace un paso 'ejecutar y recopilar información', pero no' ver el resultado' para callgrind y cachegrind – osgx

0

Ejecutar Valgrind/Callgrind en el host remoto parece ser una buena opción. O bien, puede copiar la salida de Valgrind o Callgrind a su PC y ejecutar KCachegrind en ella.

Si usa Emacs, puede iniciarlo en el host remoto y hacer lo que se muestra en here, que le proporcionará una interfaz de Emacs para la herramienta valgrind.

5

Utilice SSHFS para montar el directorio remoto en el que está trabajando (consulte, por ejemplo, SSHFS installation instructions for Ubuntu).

Luego solo ingrese y ejecute valgrind --tool=callgrind con las opciones que desee en el directorio remoto. Como tiene ese directorio montado localmente, es tan fácil abrir los archivos de datos con KCacheGrind como si estuviera depurando localmente.

+0

Los archivos Cachegrind pueden crecer enormemente, hasta varios cientos de MB. Hacer esto en archivos de gran tamaño realmente no es recomendable ya que kcachegrind lee todo el archivo a la vez, lo que requerirá varios minutos incluso en una conexión rápida. –

3

webgrind es un web-frontend escrito en PHP que analiza la salida de XDebug (que usa el mismo formato que callgrind), por lo que debería funcionar con la salida de callgrind (aunque todavía no lo he probado).

+0

"Implementa un subconjunto de las características de kcachegrind". Entonces, v.g. salida del ensamblador será inaccesible a través de webgrind – osgx

9

Usted puede obtener información básica y las anotaciones de archivo de salida Callgrind (creado por valgrind --tool=callgrind) con la utilidad de línea de comandos callgrind_annotate. (manual pagesection in docs). Para los archivos, generados por cachegrind (valgrind --tool=cachegrind), puede usar un cg_annotate (section in docs). Estas utilidades se compilan por defecto con valgrind en sí mismo.

Otra forma es copiar archivos de salida de programa y caché/callgrind a su máquina y luego analizarlos con kcachegrind local como de costumbre. Pero de esta manera puede ser difícil si su máquina no tiene unix pero Windows o si se está ejecutando en un arco incompatible (kcachegrind puede llamar al objdump local para obtener información sobre el programa).

También quiero recomendar opciones de línea de comandos para valgrind:

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

También puede especificar los tamaños de caché para Cachegrind con --I1=32768,8,64 --D1=32768,8,64 --L2=3145728,12,64