Article View: es.comp.os.linux.programacion
Article #9796[Mini-Tutorial] Control de memoria en C.
From: Angel
Date: Mon, 20 May 2002 17:11
Date: Mon, 20 May 2002 17:11
51 lines
3082 bytes
3082 bytes
Buenas tardes. Muchos de nosotros hemos estado montones de horas mirando un codigo para ver que era lo que nos fallaba o para intentar optimizarlo y bueno muchos de los problemas que tenemos es por la gestion de memoria. Voy a explicar como intentar encontrar esos fallos desde un programa externo, en concreto el memprof. Se que hay decenas de programas aparte de este, pero bueno, no puedo intentar explicar algo que no utilizo, no??. Si hay alguien que quiere comentar sobre otro programa, estar� encantado de leerlo y probar lo que dice. Vale, primero como instalar el memprof. Este programa podeis encontrarlo en: http://people.redhat.com/otaylor/memprof/ Para los usuarios debian basta con un simple apt-get install memprof . Oka, ya esta instalado, ahora que? pues empezamos cargando un programa ( es recomendable haberlo compilado con la opci�n debug ( gcc -g ... ). lo hacemos con el menu File->Run seleccionamos el programa y ya lo tenemos. Vale despues vamos a mirar como esta el tema de la memoria. Le damos al boton de Profile y nos sale un peque�o "informe" de la memoria q utiliza el programa y las funciones donde la reserva. Ahora viene lo divertido, la opcion Leaks, aqui sale otro "informe" sobre las reservas de memoria que no han sido convenientemente liberadas. En el Stack Trace sale una lista con las funciones y ( si est� compilado con el -g ) la linea donde se reserva. Esto nos puede dar una muy buena referencia sobre los punteros que se nos han perdido :P. Bueno, se q esto es corto y un poco hard para gente novel, pero con un poco de practica todos aprendemos y hacemos nuestras aplicaciones mejor. Seguir� mirando otros programas/formas de controlar memoria y las ir� mandando al grupo. Venga suerte. PD: acordaros de liberar asi : if ( puntero ) free( puntero); asi si el puntero es NULL o ya esta liberado no os petar� el programa. PD2: Si alguno esta acostumbrado a programar en C++ le recomiendo que siga con sus news y deletes ;P- -- -- Liso. Linux has you...
Technical Details
Message-ID:
<o7aG8.8340$GE2.83885@telenews.teleline.es>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!skynet.be!skynet.be!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!telenews.teleline.es!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,57e18685f4ce441c,start X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2002-05-20 10:13:14 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!skynet.be!skynet.be!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!telenews.teleline.es!not-for-mail X-Trace-PostClient-IP: 80.24.166.73 From: Angel <anlismon.quita@esto.hotmail.com> Subject: [Mini-Tutorial] Control de memoria en C. Newsgroups: es.comp.os.linux.programacion Lines: 51 User-Agent: KNode/0.6.1 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit Message-ID: <o7aG8.8340$GE2.83885@telenews.teleline.es> Date: Mon, 20 May 2002 17:11:48 GMT NNTP-Posting-Host: 10.20.31.4 X-Complaints-To: usenet@teleline.es X-Trace: telenews.teleline.es 1021914708 10.20.31.4 (Mon, 20 May 2002 19:11:48 MET DST) NNTP-Posting-Date: Mon, 20 May 2002 19:11:48 MET DST Organization: Terra Networks