<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NeoEGM.com &#187; Debug</title>
	<atom:link href="http://www.neoegm.com/tag/debug/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.neoegm.com</link>
	<description>Knowledge is inside</description>
	<lastBuildDate>Mon, 08 Jul 2024 05:38:01 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.39</generator>
	<item>
		<title>cMemDbg &#8211; Librería fácil de usar de detección de fugas de memoria para C</title>
		<link>http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/</link>
		<comments>http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 18:42:07 +0000</pubDate>
		<dc:creator><![CDATA[NeoEGM]]></dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Debug]]></category>
		<category><![CDATA[Easy]]></category>
		<category><![CDATA[Freeware]]></category>
		<category><![CDATA[GNU GPL]]></category>
		<category><![CDATA[Include]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[Memory Leaks]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Source Code]]></category>

		<guid isPermaLink="false">http://www.neoegm.com/?p=58</guid>
		<description><![CDATA[Después de algún tiempo de trabajar con C, decidí desarrollar una librería muy fácil de usar que pudiera ayudar a detectar y trazar fugas de memoria (memory leaks). Hay muchas soluciones para esto en la red, pero esta tiene la particularidad de ser realmente simple de implementar. Simplemente hay que agregar el siguiente include al [&#8230;]<div class='yarpp-related-rss'>
<strong>
Related posts:<ol>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/cppmemdbg-easy-to-use-cpp-memory-leak-detection-library/" rel="bookmark" title="cppMemDbg &#8211; Librería fácil de usar de detección de fugas de memoria para C++">cppMemDbg &#8211; Librería fácil de usar de detección de fugas de memoria para C++ </a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/simple-list-class/" rel="bookmark" title="Clase Lista simple para C++">Clase Lista simple para C++ </a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/simple-string-class/" rel="bookmark" title="Clase String simple para C++">Clase String simple para C++ </a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>Después de algún tiempo de trabajar con C, decidí desarrollar una librería muy fácil de usar que pudiera ayudar a detectar y trazar fugas de memoria (memory leaks).</p>
<p>Hay muchas soluciones para esto en la red, pero esta tiene la particularidad de ser realmente simple de implementar.</p>
<p><span id="more-58"></span><br />
Simplemente hay que agregar el siguiente include al archivo principal de inclusión (un archivo que sea incluido por cada archivo del proyecto) o, en el caso de que no haya uno, a cada archivo que llame a una función de alocación de memoria (malloc, realloc, calloc o free). La única precaución extra que hay que tener en cuenta es incluirlo <strong>después</strong> de los headers standard (stdio.h, stdlib.h, malloc.h, etc.).</p>
<p>Esta es la línea:</p>
<pre class="brush: plain; light: true; title: ; notranslate">#include &quot;cMemDbg.h&quot;</pre>
<p>Eso es todo&#8230; Esperabas más? Bueno, hay un último paso&#8230; Tenés que hacer esta llamada justo antes de salir del programa para poder obtener las conclusiones detalladas:</p>
<pre class="brush: plain; light: true; title: ; notranslate">PrintMemoryLeakInfo();</pre>
<p>Fácil, no?</p>
<p>Eso fue todo&#8230; En serio.</p>
<p>Ahora, antes de ir a funcionalidades más &#8220;de experto&#8221;, voy a dejar el link para descargar la librería para aquellos que no quieran seguir leyendo:</p>
<div align="center">
<p class="download"><a href="http://download.neoegm.com/software/cmemdbg/cMemDbg_1.0.zip">Descargar cMemDbg 1.0</a></p>
</div>
<p>Ahora continuemos&#8230;</p>
<p>Esta librería viene con tres parámetros configurables (disponibles en cMemDbg.c):</p>
<ul>
<li><strong>PRINT_OPERATIONS:</strong> Si está seteado en 1, se va a imprimir a la salida configurada (stdout por default) cada operación de alocación de memoria realizada en el programa (alocación o liberación). De otro modo, la librería sólo imprimirá problemas, notificaciones y el dump final. <em>[Valor predeterminado = 1]</em></li>
<li><strong>MAX_ALLOC:</strong> Largo del stack interno de memoria de la librería (en elementos). Es la máxima cantidad de alocaciones que pueden ser trazadas sin ser liberadas. Se puede incementar este valor a voluntad en casi de ser necesario. De hecho, si es necesario, la librería imprimirá un mensaje diciendo: &#8220;INTERNAL_ERROR: Allocation stack overflow, please increase MAX_ALLOC&#8221;. <em>[Valor predeterminado = 256]</em></li>
<li><strong>PRINT_OUTPUT:</strong> Destino de impresión de las notificaciones generadas por la librería (puede ser cualquier stream/archivo en el que se pueda imprimir utilizando fprintf). <em>[Valor predeterminado = stdout]</em></li>
</ul>
<p>Finalmente, hay dos funciones más que se pueden utilizar en caso de ser necesario:</p>
<ul>
<li><strong>PrintTotalAllocatedMemory():</strong> Imprime la cantidad acumulativa de memoria alocada al momento de la llamada.</li>
<li><strong>PrintMemoryReservedByCMemDbgLibrary():</strong> Imprime la cantidad de memoria reservada por la librería (definida en tiempo de compilación por la constante MAX_ALLOC).</li>
</ul>
<p>Eso es todo&#8230; Dije que era fácil de usar.</p>
<p>De todos modos si, luego de leer los comentarios del archivo cMemDbg.h, tenés algún tipo de pregunta, comentario o sugerencia, no dudes en contactarme.<br />
<h4>Incoming search terms for the article:</h4>
<ul>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/" title="detectar fugas de memoria en c">detectar fugas de memoria en c</a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/" title="cmemdbg">cmemdbg</a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/" title="c memory leak">c memory leak</a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/" title="detectar fuga memoria c">detectar fuga memoria c</a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/" title="detectar fugas de memoria">detectar fugas de memoria</a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/" title="internal_error allocation stack overflow please increase max_alloc">internal_error allocation stack overflow please increase max_alloc</a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/" title="detectar memory leaks c">detectar memory leaks c</a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/" title="detectar fugas de memoria c">detectar fugas de memoria c</a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/" title="freebsd memory leak detection">freebsd memory leak detection</a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/" title="Detector de fugas de memoria">Detector de fugas de memoria</a></li>
</ul>
<div class='yarpp-related-rss'>
<strong><p>Related posts:<ol>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/cppmemdbg-easy-to-use-cpp-memory-leak-detection-library/" rel="bookmark" title="cppMemDbg &#8211; Librería fácil de usar de detección de fugas de memoria para C++">cppMemDbg &#8211; Librería fácil de usar de detección de fugas de memoria para C++ </a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/simple-list-class/" rel="bookmark" title="Clase Lista simple para C++">Clase Lista simple para C++ </a></li>
<li><a href="http://www.neoegm.com/es/tech/programming/c-cpp/simple-string-class/" rel="bookmark" title="Clase String simple para C++">Clase String simple para C++ </a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.neoegm.com/es/tech/programming/c-cpp/cmemdbg-easy-to-use-c-memory-leak-detection-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
