2011-12-12 15 views
8

Estoy usando Qt Creator para desarrollar una aplicación C++, y estoy tratando de rastrear algunas pérdidas de memoria.Usando la herramienta 'Analizar memoria' en Qt Creator

He seguido these instructions *, y tengo Valgrind isntalled en mi máquina Ubuntu.

Empiezo mi aplicación desde la sección Analizar memoria, y después de hacer clic en el botón de detener me dicen que Tool Analyze Memory finished, 928 issues found. Sin embargo, no aparecen resultados en la sección de análisis, que permanece en blanco.

¿Estoy haciendo algo mal? ¿Dónde puedo encontrar los resultados del análisis de memoria?


* manera confusa, las instrucciones piden una 'liberación' construir configuración, pero esto hace que la selección de una advertencia en Qt diciendo que la herramienta de análisis de la memoria requiere una configuración de depuración. Lo he intentado en ambos sentidos.

Respuesta

11

Lo he comprobado en mi Qt Creator y funciona. Estoy usando la versión 2.3.1 con Qt 4.7.4 y Valgrind 3.7.0. Lo probé en dropsite example con la configuración de compilación de depuración. También lo probé con mi proyecto CMake (compiled con indicadores -g y -O0) y también funcionó. Asegúrese de seleccionar el botón de inicio siguiente al Valgrind Memory Analyzer. En la misma barra encontrarás íconos de flechas. Junto a ellos está el icono de embudo (creo). Haga clic en él y asegúrese de que los tipos de errores que le interesan estén marcados.

Si no funciona, y usted no desea usar las herramientas de Valgrind desde la consola, hay otras Valgrind GUIs como Valkyrie.

EDITAR: He actualizado Qt Creator a la versión 2.4.0rc1 y lo he comprobado con mi proyecto CMake. Tampoco mostró ningún resultado, al tiempo que informaba unos cientos de problemas. La solución a esto fue comprobar External errors después de hacer clic en el icono de embudo.

EDIT2: En la edición final 2.4.0 se ha corregido.

+2

El problema volvió con la última versión de Qt Creator 3.2.1. +1 para 'Errores externos'. ¡Funcionó para mí! ¡Gracias! – mchiasson

+0

Y todavía está presente en 3.6.0. Correcciones de errores externos. ¡Gracias! – marmistrz

1

No hizo nada malo. En el menú de Valgrind, presione el ícono de Filtro y seleccione External Errors. Verás que aparecen todos los problemas. Es muy probable que no sean de su aplicación, sino de Qt o relacionados, por lo que a menudo puede ignorarlos.

X issues found se refiere a la cantidad total de problemas; cuando External Errors no está seleccionado, solo aparecen los relacionados con su aplicación. Si no aparece ninguno, Valgrind no ha detectado ninguna pérdida de memoria en su aplicación.

+0

¿Esto significa que la pérdida de memoria ocurre cada vez externamente? – CaptainDaVinci