SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
Sebastian Kügler <sebas@kde.org>, FrOSCon 2006




           Valgrind


Como encontrar errores de uso de memoria con
                  Valgrind
                                          Albert Astals Cid




           Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
Sebastian Kügler <sebas@kde.org>, FrOSCon 2006




           Valgrind

¿Quien es Albert Astals Cid?

   Soy Yo!

   Ingeniero en Informática por la UPC

   Programador en KDE desde 2003

   Mantenedor de KPDF/Okular desde 2004

   Miembro de KDE eV desde 2005

   Presidente de KDE España

   NO soy un experto en Valgrind
           Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
Sebastian Kügler <sebas@kde.org>, FrOSCon 2006




           Valgrind

¿Qué es Valgrind?
   Valgrind es un conjunto de herramientas
    para hacer debugging y profiling

   Herramientas:
       memcheck: detector de errores de memoria

       cachegrind: profiler de cache

       callgrind: profiler de llamadas

       massif: profiler de uso de heap

       Helgrind/DRD: debugger de threads




   Funciona en X86/Linux, AMD64/Linux, PPC32/Linux, PPC64/Linux, X86/Darwin

   Licencia GPL



           Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
Sebastian Kügler <sebas@kde.org>, FrOSCon 2006




               Valgrind

¿Porqué usar Valgrind?
   No necesita recompilación
   No es un juguete
   Tiene mantenedores activos
   Es libre




               Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
Sebastian Kügler <sebas@kde.org>, FrOSCon 2006




            Valgrind

Memcheck
   Detecta errores de gestión de memoria
   Dirigido a programas en C y C++
   Intercepta las lecturas y escrituras de memoria y llamadas a
    malloc/new/free/delete
   Detecta:
       Accesos incorrectos a memoria

       Usos de variables no inicializadas

       Leaks de memoria

       free/delete incorrectos



   Ejecuta los programas entre 10 y 30 veces más lento




            Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
Sebastian Kügler <sebas@kde.org>, FrOSCon 2006




           Valgrind

¿Como usar Memcheck?
$ valgrind nombreDeMiPrograma
--trace-children=no|yes Valgrind-ise child processes? [no]
--log-socket=ipaddr:port log messages to socket ipaddr:port
--num-callers=<number> show <number> callers in stack traces [12]
--suppressions=<filename> suppress errors described in <filename>
--gen-suppressions=no|yes|all print suppressions for errors? [no]
--db-attach=no|yes start debugger when errors detected? [no]
--leak-check=no|summary|full search for memory leaks at exit? [summary]




           Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
Sebastian Kügler <sebas@kde.org>, FrOSCon 2006




               Valgrind

¿Cuando usar Memcheck?
   Cuando quieres debugar un problema
   Cuando quieres buscar leaks
   Siempre!
         Lento...
         ...pero posible, Julian Seward ejecuta KDE en un 2 PPC970 2.5Ghz y 4GB
         Encuentra errores que no siempre son visibles




               Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
Sebastian Kügler <sebas@kde.org>, FrOSCon 2006




           Valgrind

Entendiendo a Valgrind
==25832==        Invalid read of size 4
==25832==        at 0x8048724: BandMatrix::ReSize(int, int, int) (bogon.cpp:45)
==25832==        by 0x80487AF: main (bogon.cpp:66)
==25832==        Address 0xBFFFF74C is not stack'd, malloc'd or free'd




                                 特特特
                                 特
                                                       ???




           Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
Sebastian Kügler <sebas@kde.org>, FrOSCon 2006




            Valgrind

Ejemplos simples
   error1.c - variable no inicializada
   error2.c - acceso a memoria no alocatada
   error3.c - free incorrecto
   error4.c - delete incorrecto
   error5.c - leak de memoria
   error6.c - leak de memoria
   error7.c - uso de memoria ya liberada




            Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
Sebastian Kügler <sebas@kde.org>, FrOSCon 2006




           Valgrind

Tu programa no es tu código
   A veces ninguno de los errores es nuestro
   La solución es usar suppressions
   --gen-suppressions=no/yes/all
   --suppression=ficheroSuppressions




           Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
Sebastian Kügler <sebas@kde.org>, FrOSCon 2006




           Valgrind


                                           Preguntas?




           Albert Astals Cid <aacid@kde.org>, Akademy-es 2011

Más contenido relacionado

Similar a Debugando con Valgrind (20)

Exposicion
ExposicionExposicion
Exposicion
 
Sistemas de VoIP con Asterisk
Sistemas de VoIP con AsteriskSistemas de VoIP con Asterisk
Sistemas de VoIP con Asterisk
 
Novedades de C++11
Novedades de C++11Novedades de C++11
Novedades de C++11
 
Archlinux
ArchlinuxArchlinux
Archlinux
 
Primeros pasos con Logstash y Beats
Primeros pasos con Logstash y BeatsPrimeros pasos con Logstash y Beats
Primeros pasos con Logstash y Beats
 
Construyendo rootkits basicos
Construyendo rootkits basicosConstruyendo rootkits basicos
Construyendo rootkits basicos
 
Los mejores trucos de Asterisk
Los mejores trucos de AsteriskLos mejores trucos de Asterisk
Los mejores trucos de Asterisk
 
Aprendiendo a usar NDK Android Day(castellano)
Aprendiendo a usar NDK Android Day(castellano)Aprendiendo a usar NDK Android Day(castellano)
Aprendiendo a usar NDK Android Day(castellano)
 
Csharp
CsharpCsharp
Csharp
 
VoIP con Asterisk Marzo 2010
VoIP con Asterisk Marzo 2010VoIP con Asterisk Marzo 2010
VoIP con Asterisk Marzo 2010
 
Desarrollos en electrónica dahj
Desarrollos en electrónica dahjDesarrollos en electrónica dahj
Desarrollos en electrónica dahj
 
Introducción a ObjectiveC e IOS
Introducción a ObjectiveC e IOSIntroducción a ObjectiveC e IOS
Introducción a ObjectiveC e IOS
 
Clase 2 GuiaPractica.pdf
Clase 2 GuiaPractica.pdfClase 2 GuiaPractica.pdf
Clase 2 GuiaPractica.pdf
 
Rmc gera [autoguardado]
Rmc gera [autoguardado]Rmc gera [autoguardado]
Rmc gera [autoguardado]
 
Mantenimiento preventivo
Mantenimiento preventivoMantenimiento preventivo
Mantenimiento preventivo
 
Mantenimiento preventivo
Mantenimiento preventivoMantenimiento preventivo
Mantenimiento preventivo
 
Interfaz visual basic 6 y arduino
Interfaz visual basic 6 y arduinoInterfaz visual basic 6 y arduino
Interfaz visual basic 6 y arduino
 
Interfaz visual basic 6 y arduino
Interfaz visual basic 6 y arduinoInterfaz visual basic 6 y arduino
Interfaz visual basic 6 y arduino
 
Curso basico c sharp
Curso basico c sharpCurso basico c sharp
Curso basico c sharp
 
Trabajando en Código Abierto
Trabajando en Código AbiertoTrabajando en Código Abierto
Trabajando en Código Abierto
 

Más de kdeespana

Desarrollando software libre sin ser informático akademy es 2017
Desarrollando software libre sin ser informático akademy es 2017Desarrollando software libre sin ser informático akademy es 2017
Desarrollando software libre sin ser informático akademy es 2017kdeespana
 
Slimbook - Welcome to Freedom - Akademy-es 2017
Slimbook - Welcome to Freedom - Akademy-es 2017Slimbook - Welcome to Freedom - Akademy-es 2017
Slimbook - Welcome to Freedom - Akademy-es 2017kdeespana
 
KDE España: Qué es y para que sirve
KDE España: Qué es y para que sirve KDE España: Qué es y para que sirve
KDE España: Qué es y para que sirve kdeespana
 
Qtquick, interfaces con animaciones fluídas en Qt5
Qtquick, interfaces con animaciones fluídas en Qt5Qtquick, interfaces con animaciones fluídas en Qt5
Qtquick, interfaces con animaciones fluídas en Qt5kdeespana
 
Descubre plasma 5, el escritorio de la Comunidad KDE
Descubre plasma 5, el escritorio de la Comunidad KDEDescubre plasma 5, el escritorio de la Comunidad KDE
Descubre plasma 5, el escritorio de la Comunidad KDEkdeespana
 
Clazy, mejorando tu código en tiempo de compilación
Clazy, mejorando tu código en tiempo de compilaciónClazy, mejorando tu código en tiempo de compilación
Clazy, mejorando tu código en tiempo de compilaciónkdeespana
 
La potencia del Terminal
La potencia del TerminalLa potencia del Terminal
La potencia del Terminalkdeespana
 
10 formas de colaborar akademy es 2016
10 formas de colaborar akademy es 201610 formas de colaborar akademy es 2016
10 formas de colaborar akademy es 2016kdeespana
 
Kool Desktop Environment
Kool Desktop EnvironmentKool Desktop Environment
Kool Desktop Environmentkdeespana
 
openQA y Open Build System
openQA y Open Build SystemopenQA y Open Build System
openQA y Open Build Systemkdeespana
 
KDE Frameworks, cuando Qt se nos queda corto
KDE Frameworks, cuando Qt se nos queda corto KDE Frameworks, cuando Qt se nos queda corto
KDE Frameworks, cuando Qt se nos queda corto kdeespana
 
Qt5 en distintas plataformas
Qt5 en distintas plataformasQt5 en distintas plataformas
Qt5 en distintas plataformaskdeespana
 
Next gen Desktop Apps
Next gen Desktop AppsNext gen Desktop Apps
Next gen Desktop Appskdeespana
 
KDE España: Qué es y para qué sirve
KDE España: Qué es y para qué sirveKDE España: Qué es y para qué sirve
KDE España: Qué es y para qué sirvekdeespana
 
KDE connect - Akademy-es 2014 por Albert Vaca
KDE connect - Akademy-es 2014 por Albert VacaKDE connect - Akademy-es 2014 por Albert Vaca
KDE connect - Akademy-es 2014 por Albert Vacakdeespana
 
Next gen-apps
Next gen-appsNext gen-apps
Next gen-appskdeespana
 
Kde experience - Akademy-es 2014
Kde experience - Akademy-es 2014Kde experience - Akademy-es 2014
Kde experience - Akademy-es 2014kdeespana
 
Baloo - Akademy-es 2014
Baloo - Akademy-es 2014Baloo - Akademy-es 2014
Baloo - Akademy-es 2014kdeespana
 
Es el momento de KDE - Akademy-es 2014
Es el momento de KDE - Akademy-es 2014Es el momento de KDE - Akademy-es 2014
Es el momento de KDE - Akademy-es 2014kdeespana
 

Más de kdeespana (20)

Desarrollando software libre sin ser informático akademy es 2017
Desarrollando software libre sin ser informático akademy es 2017Desarrollando software libre sin ser informático akademy es 2017
Desarrollando software libre sin ser informático akademy es 2017
 
Slimbook - Welcome to Freedom - Akademy-es 2017
Slimbook - Welcome to Freedom - Akademy-es 2017Slimbook - Welcome to Freedom - Akademy-es 2017
Slimbook - Welcome to Freedom - Akademy-es 2017
 
KDE España: Qué es y para que sirve
KDE España: Qué es y para que sirve KDE España: Qué es y para que sirve
KDE España: Qué es y para que sirve
 
Qtquick, interfaces con animaciones fluídas en Qt5
Qtquick, interfaces con animaciones fluídas en Qt5Qtquick, interfaces con animaciones fluídas en Qt5
Qtquick, interfaces con animaciones fluídas en Qt5
 
Descubre plasma 5, el escritorio de la Comunidad KDE
Descubre plasma 5, el escritorio de la Comunidad KDEDescubre plasma 5, el escritorio de la Comunidad KDE
Descubre plasma 5, el escritorio de la Comunidad KDE
 
Clazy, mejorando tu código en tiempo de compilación
Clazy, mejorando tu código en tiempo de compilaciónClazy, mejorando tu código en tiempo de compilación
Clazy, mejorando tu código en tiempo de compilación
 
La potencia del Terminal
La potencia del TerminalLa potencia del Terminal
La potencia del Terminal
 
10 formas de colaborar akademy es 2016
10 formas de colaborar akademy es 201610 formas de colaborar akademy es 2016
10 formas de colaborar akademy es 2016
 
Kool Desktop Environment
Kool Desktop EnvironmentKool Desktop Environment
Kool Desktop Environment
 
openQA y Open Build System
openQA y Open Build SystemopenQA y Open Build System
openQA y Open Build System
 
Plasma Next
Plasma NextPlasma Next
Plasma Next
 
KDE Frameworks, cuando Qt se nos queda corto
KDE Frameworks, cuando Qt se nos queda corto KDE Frameworks, cuando Qt se nos queda corto
KDE Frameworks, cuando Qt se nos queda corto
 
Qt5 en distintas plataformas
Qt5 en distintas plataformasQt5 en distintas plataformas
Qt5 en distintas plataformas
 
Next gen Desktop Apps
Next gen Desktop AppsNext gen Desktop Apps
Next gen Desktop Apps
 
KDE España: Qué es y para qué sirve
KDE España: Qué es y para qué sirveKDE España: Qué es y para qué sirve
KDE España: Qué es y para qué sirve
 
KDE connect - Akademy-es 2014 por Albert Vaca
KDE connect - Akademy-es 2014 por Albert VacaKDE connect - Akademy-es 2014 por Albert Vaca
KDE connect - Akademy-es 2014 por Albert Vaca
 
Next gen-apps
Next gen-appsNext gen-apps
Next gen-apps
 
Kde experience - Akademy-es 2014
Kde experience - Akademy-es 2014Kde experience - Akademy-es 2014
Kde experience - Akademy-es 2014
 
Baloo - Akademy-es 2014
Baloo - Akademy-es 2014Baloo - Akademy-es 2014
Baloo - Akademy-es 2014
 
Es el momento de KDE - Akademy-es 2014
Es el momento de KDE - Akademy-es 2014Es el momento de KDE - Akademy-es 2014
Es el momento de KDE - Akademy-es 2014
 

Último

Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Festibity
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 

Último (14)

Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 

Debugando con Valgrind

  • 1. Sebastian Kügler <sebas@kde.org>, FrOSCon 2006 Valgrind Como encontrar errores de uso de memoria con Valgrind Albert Astals Cid Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
  • 2. Sebastian Kügler <sebas@kde.org>, FrOSCon 2006 Valgrind ¿Quien es Albert Astals Cid?  Soy Yo!  Ingeniero en Informática por la UPC  Programador en KDE desde 2003  Mantenedor de KPDF/Okular desde 2004  Miembro de KDE eV desde 2005  Presidente de KDE España  NO soy un experto en Valgrind Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
  • 3. Sebastian Kügler <sebas@kde.org>, FrOSCon 2006 Valgrind ¿Qué es Valgrind?  Valgrind es un conjunto de herramientas para hacer debugging y profiling  Herramientas:  memcheck: detector de errores de memoria  cachegrind: profiler de cache  callgrind: profiler de llamadas  massif: profiler de uso de heap  Helgrind/DRD: debugger de threads  Funciona en X86/Linux, AMD64/Linux, PPC32/Linux, PPC64/Linux, X86/Darwin  Licencia GPL Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
  • 4. Sebastian Kügler <sebas@kde.org>, FrOSCon 2006 Valgrind ¿Porqué usar Valgrind?  No necesita recompilación  No es un juguete  Tiene mantenedores activos  Es libre Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
  • 5. Sebastian Kügler <sebas@kde.org>, FrOSCon 2006 Valgrind Memcheck  Detecta errores de gestión de memoria  Dirigido a programas en C y C++  Intercepta las lecturas y escrituras de memoria y llamadas a malloc/new/free/delete  Detecta:  Accesos incorrectos a memoria  Usos de variables no inicializadas  Leaks de memoria  free/delete incorrectos  Ejecuta los programas entre 10 y 30 veces más lento Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
  • 6. Sebastian Kügler <sebas@kde.org>, FrOSCon 2006 Valgrind ¿Como usar Memcheck? $ valgrind nombreDeMiPrograma --trace-children=no|yes Valgrind-ise child processes? [no] --log-socket=ipaddr:port log messages to socket ipaddr:port --num-callers=<number> show <number> callers in stack traces [12] --suppressions=<filename> suppress errors described in <filename> --gen-suppressions=no|yes|all print suppressions for errors? [no] --db-attach=no|yes start debugger when errors detected? [no] --leak-check=no|summary|full search for memory leaks at exit? [summary] Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
  • 7. Sebastian Kügler <sebas@kde.org>, FrOSCon 2006 Valgrind ¿Cuando usar Memcheck?  Cuando quieres debugar un problema  Cuando quieres buscar leaks  Siempre!  Lento...  ...pero posible, Julian Seward ejecuta KDE en un 2 PPC970 2.5Ghz y 4GB  Encuentra errores que no siempre son visibles Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
  • 8. Sebastian Kügler <sebas@kde.org>, FrOSCon 2006 Valgrind Entendiendo a Valgrind ==25832== Invalid read of size 4 ==25832== at 0x8048724: BandMatrix::ReSize(int, int, int) (bogon.cpp:45) ==25832== by 0x80487AF: main (bogon.cpp:66) ==25832== Address 0xBFFFF74C is not stack'd, malloc'd or free'd 特特特 特 ??? Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
  • 9. Sebastian Kügler <sebas@kde.org>, FrOSCon 2006 Valgrind Ejemplos simples  error1.c - variable no inicializada  error2.c - acceso a memoria no alocatada  error3.c - free incorrecto  error4.c - delete incorrecto  error5.c - leak de memoria  error6.c - leak de memoria  error7.c - uso de memoria ya liberada Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
  • 10. Sebastian Kügler <sebas@kde.org>, FrOSCon 2006 Valgrind Tu programa no es tu código  A veces ninguno de los errores es nuestro  La solución es usar suppressions  --gen-suppressions=no/yes/all  --suppression=ficheroSuppressions Albert Astals Cid <aacid@kde.org>, Akademy-es 2011
  • 11. Sebastian Kügler <sebas@kde.org>, FrOSCon 2006 Valgrind Preguntas? Albert Astals Cid <aacid@kde.org>, Akademy-es 2011