corro Valgrind con los siguientes parámetros:¿Cómo obtener la pila de llamadas completa de Valgrind?
--leak-check=full --show-reachable=yes --leak-resolution=high --num-callers=100 --trace-children=yes
En pérdidas de memoria de registro, veo algunos mensajes de error con pila completa rastrear hasta principal, pero algunos mensajes parezco siguiente:
==3956== 1,999,140 (68,796 direct, 1,930,344 indirect) bytes in 5,733 blocks are definitely lost in loss record 8,842 of 8,845
==3956== at 0x4022AB8: malloc (vg_replace_malloc.c:207)
==3956==
Cómo ¿Puedo obtener el seguimiento completo de la pila para estos errores?
La última versión publicada de Valgrind solo admite --num-callers hasta 50. Por lo tanto, no está claro qué versión está utilizando. La traza de la pila anterior parece incompleta. Esto podría estar relacionado con la forma en que compila tu aplicación (por ejemplo, la opción -fomit-frame-pointer puede hacer que el seguimiento de la pila sea más difícil de producir) – phd
Bump. (¿Stackoverflow "bump" posts?) Mismo problema. Compilando una aplicación con -g. Muestra posibles fugas de memoria con un rastro de pila que mira desde malloc(), la función que llama malloc(), y luego main(), omitiendo todo lo que está en medio, incluidas las funciones dentro del mismo archivo que main(). ?? Veo ejemplos en línea que no tienen este límite de 3 niveles de pila ... ?? ¿Algunas ideas? – Samuel
Estoy usando valgrind 3.8.1 en Ubuntu 13.10 y veo rastros de pila que no contienen todas las llamadas intermedias. Sin optimización al compilar con gcc (o tal vez necesito -Og o algo así ...) – thoni56