🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #9796

[Mini-Tutorial] Control de memoria en C.

#9796
From: Angel
Date: Mon, 20 May 2002 17:11
51 lines
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-mail

Show 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