SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
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 2010
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 2010
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 2010
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 2010
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 2010
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 2010
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 2010
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 2010
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 2010
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 2010
Sebastian Kügler <sebas@kde.org>, FrOSCon 2006




           Valgrind


                                           Preguntas?




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

Weitere ähnliche Inhalte

Andere mochten auch

Cronograma de actividades
Cronograma de actividadesCronograma de actividades
Cronograma de actividadesap100910
 
8x8 proyecto calendario actividades 2012
8x8 proyecto calendario actividades 20128x8 proyecto calendario actividades 2012
8x8 proyecto calendario actividades 2012Domingo Cano Molina
 
Mis dibujos
Mis dibujosMis dibujos
Mis dibujosIsaac
 
Pilar deportes
Pilar deportesPilar deportes
Pilar deportes14011992
 
Reformas clave para un Estado en buen estado - Guía UNO
Reformas clave para un Estado en buen estado - Guía UNOReformas clave para un Estado en buen estado - Guía UNO
Reformas clave para un Estado en buen estado - Guía UNOAsociación Civil Transparencia
 
Boletín del 18 feb 2015
Boletín del 18 feb 2015 Boletín del 18 feb 2015
Boletín del 18 feb 2015 UNAM
 
La vida en_pareja_2009
La vida en_pareja_2009La vida en_pareja_2009
La vida en_pareja_2009stelyesid
 
Posicionamiento pef2012 191011
Posicionamiento pef2012 191011Posicionamiento pef2012 191011
Posicionamiento pef2012 191011UNAM
 
Libro de acoso
Libro de acosoLibro de acoso
Libro de acosogemesse
 
Instalacion Smart Notebook 2015
Instalacion Smart Notebook 2015Instalacion Smart Notebook 2015
Instalacion Smart Notebook 2015jonjaner2007
 
myenglishwebspace2ppt.ppt
myenglishwebspace2ppt.pptmyenglishwebspace2ppt.ppt
myenglishwebspace2ppt.pptPremi TIC
 
Propiedades periódicas
Propiedades periódicasPropiedades periódicas
Propiedades periódicasArturo Blanco
 
Hardware 1208296719887390-9
Hardware 1208296719887390-9Hardware 1208296719887390-9
Hardware 1208296719887390-9CETis 109
 
SISTEMA DE INFORMACION GERENCIAL
SISTEMA DE INFORMACION GERENCIALSISTEMA DE INFORMACION GERENCIAL
SISTEMA DE INFORMACION GERENCIALyulisa
 
Diputados aprueban en lo particular el dictamen a la minuta sobre reforma pol...
Diputados aprueban en lo particular el dictamen a la minuta sobre reforma pol...Diputados aprueban en lo particular el dictamen a la minuta sobre reforma pol...
Diputados aprueban en lo particular el dictamen a la minuta sobre reforma pol...UNAM
 

Andere mochten auch (20)

Diario oficial
Diario oficialDiario oficial
Diario oficial
 
Cronograma de actividades
Cronograma de actividadesCronograma de actividades
Cronograma de actividades
 
8x8 proyecto calendario actividades 2012
8x8 proyecto calendario actividades 20128x8 proyecto calendario actividades 2012
8x8 proyecto calendario actividades 2012
 
Podcast
PodcastPodcast
Podcast
 
Mis dibujos
Mis dibujosMis dibujos
Mis dibujos
 
Pilar deportes
Pilar deportesPilar deportes
Pilar deportes
 
Directiva de neutralidad de la Defensoria del Pueblo
Directiva de neutralidad de la Defensoria del PuebloDirectiva de neutralidad de la Defensoria del Pueblo
Directiva de neutralidad de la Defensoria del Pueblo
 
Instalacion de fax
Instalacion de faxInstalacion de fax
Instalacion de fax
 
Reformas clave para un Estado en buen estado - Guía UNO
Reformas clave para un Estado en buen estado - Guía UNOReformas clave para un Estado en buen estado - Guía UNO
Reformas clave para un Estado en buen estado - Guía UNO
 
Boletín del 18 feb 2015
Boletín del 18 feb 2015 Boletín del 18 feb 2015
Boletín del 18 feb 2015
 
La vida en_pareja_2009
La vida en_pareja_2009La vida en_pareja_2009
La vida en_pareja_2009
 
Posicionamiento pef2012 191011
Posicionamiento pef2012 191011Posicionamiento pef2012 191011
Posicionamiento pef2012 191011
 
Libro de acoso
Libro de acosoLibro de acoso
Libro de acoso
 
Instalacion Smart Notebook 2015
Instalacion Smart Notebook 2015Instalacion Smart Notebook 2015
Instalacion Smart Notebook 2015
 
myenglishwebspace2ppt.ppt
myenglishwebspace2ppt.pptmyenglishwebspace2ppt.ppt
myenglishwebspace2ppt.ppt
 
Propiedades periódicas
Propiedades periódicasPropiedades periódicas
Propiedades periódicas
 
Hardware 1208296719887390-9
Hardware 1208296719887390-9Hardware 1208296719887390-9
Hardware 1208296719887390-9
 
SISTEMA DE INFORMACION GERENCIAL
SISTEMA DE INFORMACION GERENCIALSISTEMA DE INFORMACION GERENCIAL
SISTEMA DE INFORMACION GERENCIAL
 
Diputados aprueban en lo particular el dictamen a la minuta sobre reforma pol...
Diputados aprueban en lo particular el dictamen a la minuta sobre reforma pol...Diputados aprueban en lo particular el dictamen a la minuta sobre reforma pol...
Diputados aprueban en lo particular el dictamen a la minuta sobre reforma pol...
 
Presentation BBC
Presentation BBCPresentation BBC
Presentation BBC
 

Ähnlich wie Akademy es2010 herramientas_valgrind_albert_astals

valgrind y ASAN Dos formas de instrumentar código en busca de errores
valgrind y ASAN Dos formas de instrumentar código en busca de erroresvalgrind y ASAN Dos formas de instrumentar código en busca de errores
valgrind y ASAN Dos formas de instrumentar código en busca de erroreskdeespana
 
ASAN Un debugger de memoria en tu compilador - Akademy-es 2014
ASAN Un debugger de memoria en tu compilador - Akademy-es 2014ASAN Un debugger de memoria en tu compilador - Akademy-es 2014
ASAN Un debugger de memoria en tu compilador - Akademy-es 2014kdeespana
 
El artista antes conocido como KDE 5 - Akademy-es 2014
El artista antes conocido como KDE 5 - Akademy-es 2014El artista antes conocido como KDE 5 - Akademy-es 2014
El artista antes conocido como KDE 5 - Akademy-es 2014kdeespana
 
Novedades de C++11
Novedades de C++11Novedades de C++11
Novedades de C++11kdeespana
 
Sesion 6 rendimiento y mantenimiento
Sesion 6   rendimiento y mantenimientoSesion 6   rendimiento y mantenimiento
Sesion 6 rendimiento y mantenimientoJarlan Cueva Jauregui
 
Construyendo rootkits basicos
Construyendo rootkits basicosConstruyendo rootkits basicos
Construyendo rootkits basicosTensor
 
Introducción a ObjectiveC e IOS
Introducción a ObjectiveC e IOSIntroducción a ObjectiveC e IOS
Introducción a ObjectiveC e IOSEduard Tomàs
 
Sistemas de VoIP con Asterisk
Sistemas de VoIP con AsteriskSistemas de VoIP con Asterisk
Sistemas de VoIP con AsteriskGabriel Astudillo
 
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)videos
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTPaloSanto Solutions
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTJuan Oliva
 
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
 
Desarrollos en electrónica dahj
Desarrollos en electrónica dahjDesarrollos en electrónica dahj
Desarrollos en electrónica dahjCarlos Beltran
 
Curso basico c sharp
Curso basico c sharpCurso basico c sharp
Curso basico c sharpfusilero
 

Ähnlich wie Akademy es2010 herramientas_valgrind_albert_astals (20)

valgrind y ASAN Dos formas de instrumentar código en busca de errores
valgrind y ASAN Dos formas de instrumentar código en busca de erroresvalgrind y ASAN Dos formas de instrumentar código en busca de errores
valgrind y ASAN Dos formas de instrumentar código en busca de errores
 
ASAN Un debugger de memoria en tu compilador - Akademy-es 2014
ASAN Un debugger de memoria en tu compilador - Akademy-es 2014ASAN Un debugger de memoria en tu compilador - Akademy-es 2014
ASAN Un debugger de memoria en tu compilador - Akademy-es 2014
 
Testing
TestingTesting
Testing
 
El artista antes conocido como KDE 5 - Akademy-es 2014
El artista antes conocido como KDE 5 - Akademy-es 2014El artista antes conocido como KDE 5 - Akademy-es 2014
El artista antes conocido como KDE 5 - Akademy-es 2014
 
Novedades de C++11
Novedades de C++11Novedades de C++11
Novedades de C++11
 
Sesion 6 rendimiento y mantenimiento
Sesion 6   rendimiento y mantenimientoSesion 6   rendimiento y mantenimiento
Sesion 6 rendimiento y mantenimiento
 
Exposicion
ExposicionExposicion
Exposicion
 
Csharp
CsharpCsharp
Csharp
 
Construyendo rootkits basicos
Construyendo rootkits basicosConstruyendo rootkits basicos
Construyendo rootkits basicos
 
Introducción a ObjectiveC e IOS
Introducción a ObjectiveC e IOSIntroducción a ObjectiveC e IOS
Introducción a ObjectiveC e IOS
 
Sistemas de VoIP con Asterisk
Sistemas de VoIP con AsteriskSistemas de VoIP con Asterisk
Sistemas de VoIP con 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)
 
Mantenimiento preventivo
Mantenimiento preventivoMantenimiento preventivo
Mantenimiento preventivo
 
Mantenimiento preventivo
Mantenimiento preventivoMantenimiento preventivo
Mantenimiento preventivo
 
Curso basico c sharp
Curso basico c sharpCurso basico c sharp
Curso basico c sharp
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MT
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MT
 
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
 
Desarrollos en electrónica dahj
Desarrollos en electrónica dahjDesarrollos en electrónica dahj
Desarrollos en electrónica dahj
 
Curso basico c sharp
Curso basico c sharpCurso basico c sharp
Curso basico c sharp
 

Mehr von AkademyEs2010

Akademy es2010 desktop4all_xavier_gonzalez
Akademy es2010 desktop4all_xavier_gonzalezAkademy es2010 desktop4all_xavier_gonzalez
Akademy es2010 desktop4all_xavier_gonzalezAkademyEs2010
 
Akademy es2010 kde_sc_44_baltasar_ortega
Akademy es2010 kde_sc_44_baltasar_ortegaAkademy es2010 kde_sc_44_baltasar_ortega
Akademy es2010 kde_sc_44_baltasar_ortegaAkademyEs2010
 
Akademy es2010 kde_espana_rafael_albert
Akademy es2010 kde_espana_rafael_albertAkademy es2010 kde_espana_rafael_albert
Akademy es2010 kde_espana_rafael_albertAkademyEs2010
 
Akademy es2010 kde_i10n_albert_astals
Akademy es2010 kde_i10n_albert_astalsAkademy es2010 kde_i10n_albert_astals
Akademy es2010 kde_i10n_albert_astalsAkademyEs2010
 
Akademy es2010 cifrado_html5_eduardo_robles
Akademy es2010 cifrado_html5_eduardo_roblesAkademy es2010 cifrado_html5_eduardo_robles
Akademy es2010 cifrado_html5_eduardo_roblesAkademyEs2010
 
Akademy es2010 qt_quick
Akademy es2010 qt_quickAkademy es2010 qt_quick
Akademy es2010 qt_quickAkademyEs2010
 
Akademy es2010 bluedevil
Akademy es2010 bluedevilAkademy es2010 bluedevil
Akademy es2010 bluedevilAkademyEs2010
 
Akademy es2010 viejasynuevasteckde
Akademy es2010 viejasynuevasteckdeAkademy es2010 viejasynuevasteckde
Akademy es2010 viejasynuevasteckdeAkademyEs2010
 
Akademy es2010 k_develop_aleix_pol
Akademy es2010 k_develop_aleix_polAkademy es2010 k_develop_aleix_pol
Akademy es2010 k_develop_aleix_polAkademyEs2010
 
Akademy es2010 introduccion_qt_aleix_pol
Akademy es2010 introduccion_qt_aleix_polAkademy es2010 introduccion_qt_aleix_pol
Akademy es2010 introduccion_qt_aleix_polAkademyEs2010
 
Akademy es2010 spokify_rafael_fernandez
Akademy es2010 spokify_rafael_fernandezAkademy es2010 spokify_rafael_fernandez
Akademy es2010 spokify_rafael_fernandezAkademyEs2010
 
Akademy es2010 ideal_library_rafael_fernandez
Akademy es2010 ideal_library_rafael_fernandezAkademy es2010 ideal_library_rafael_fernandez
Akademy es2010 ideal_library_rafael_fernandezAkademyEs2010
 
Akademy es2010 bugbuster_rafael_fernandez
Akademy es2010 bugbuster_rafael_fernandezAkademy es2010 bugbuster_rafael_fernandez
Akademy es2010 bugbuster_rafael_fernandezAkademyEs2010
 
Akademy es2010 clutter_alfredo_beaumont
Akademy es2010 clutter_alfredo_beaumontAkademy es2010 clutter_alfredo_beaumont
Akademy es2010 clutter_alfredo_beaumontAkademyEs2010
 

Mehr von AkademyEs2010 (14)

Akademy es2010 desktop4all_xavier_gonzalez
Akademy es2010 desktop4all_xavier_gonzalezAkademy es2010 desktop4all_xavier_gonzalez
Akademy es2010 desktop4all_xavier_gonzalez
 
Akademy es2010 kde_sc_44_baltasar_ortega
Akademy es2010 kde_sc_44_baltasar_ortegaAkademy es2010 kde_sc_44_baltasar_ortega
Akademy es2010 kde_sc_44_baltasar_ortega
 
Akademy es2010 kde_espana_rafael_albert
Akademy es2010 kde_espana_rafael_albertAkademy es2010 kde_espana_rafael_albert
Akademy es2010 kde_espana_rafael_albert
 
Akademy es2010 kde_i10n_albert_astals
Akademy es2010 kde_i10n_albert_astalsAkademy es2010 kde_i10n_albert_astals
Akademy es2010 kde_i10n_albert_astals
 
Akademy es2010 cifrado_html5_eduardo_robles
Akademy es2010 cifrado_html5_eduardo_roblesAkademy es2010 cifrado_html5_eduardo_robles
Akademy es2010 cifrado_html5_eduardo_robles
 
Akademy es2010 qt_quick
Akademy es2010 qt_quickAkademy es2010 qt_quick
Akademy es2010 qt_quick
 
Akademy es2010 bluedevil
Akademy es2010 bluedevilAkademy es2010 bluedevil
Akademy es2010 bluedevil
 
Akademy es2010 viejasynuevasteckde
Akademy es2010 viejasynuevasteckdeAkademy es2010 viejasynuevasteckde
Akademy es2010 viejasynuevasteckde
 
Akademy es2010 k_develop_aleix_pol
Akademy es2010 k_develop_aleix_polAkademy es2010 k_develop_aleix_pol
Akademy es2010 k_develop_aleix_pol
 
Akademy es2010 introduccion_qt_aleix_pol
Akademy es2010 introduccion_qt_aleix_polAkademy es2010 introduccion_qt_aleix_pol
Akademy es2010 introduccion_qt_aleix_pol
 
Akademy es2010 spokify_rafael_fernandez
Akademy es2010 spokify_rafael_fernandezAkademy es2010 spokify_rafael_fernandez
Akademy es2010 spokify_rafael_fernandez
 
Akademy es2010 ideal_library_rafael_fernandez
Akademy es2010 ideal_library_rafael_fernandezAkademy es2010 ideal_library_rafael_fernandez
Akademy es2010 ideal_library_rafael_fernandez
 
Akademy es2010 bugbuster_rafael_fernandez
Akademy es2010 bugbuster_rafael_fernandezAkademy es2010 bugbuster_rafael_fernandez
Akademy es2010 bugbuster_rafael_fernandez
 
Akademy es2010 clutter_alfredo_beaumont
Akademy es2010 clutter_alfredo_beaumontAkademy es2010 clutter_alfredo_beaumont
Akademy es2010 clutter_alfredo_beaumont
 

Kürzlich hochgeladen

Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 

Kürzlich hochgeladen (20)

Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 

Akademy es2010 herramientas_valgrind_albert_astals

  • 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 2010
  • 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 2010
  • 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 2010
  • 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 2010
  • 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 2010
  • 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 2010
  • 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 2010
  • 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 2010
  • 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 2010
  • 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 2010
  • 11. Sebastian Kügler <sebas@kde.org>, FrOSCon 2006 Valgrind Preguntas? Albert Astals Cid <aacid@kde.org>, Akademy-es 2010