<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://api.springnote.com">
  <identifier type="integer">372985</identifier>
  <title>Native Code&#50640;&#49436; Memory Leak&#51012; &#51105;&#45716; &#48169;&#48277;-1</title>
  <relation_is_part_of type="integer">23448</relation_is_part_of>
  <date_modified type="datetime">2007-07-19T22:09:37Z</date_modified>
  <uri>http://again4you.springnote.com/pages/372985</uri>
  <date_created type="datetime">2007-07-18T15:35:43Z</date_created>
  <source>&lt;p&gt;&#51068;&#54616;&#45716; &#44275;&#50640;&#49436; Memory Leak&#51060; &#48156;&#49373;&#54616;&#45716;&#44144; &#44057;&#45796;&#44256; &lt;strong&gt;&#53748;&#44540; &#46385; 5&#48516;&lt;/strong&gt; &#45224;&#44592;&#44256; &#47568;&#54644;&#51452;&#49512;&#45796;.&lt;/p&gt;
&lt;p&gt;&#50724;&#45720;&amp;nbsp;&#45796;&#47480; &#54016;&#50640;&amp;nbsp;Binary Release&#47484; &#54616;&#44592;&#50948;&#54644; &#53076;&#46300;&#47484; &#49688;&#51221;&#54616;&#50688;&#51004;&#45208;,&lt;/p&gt;
&lt;p&gt;&#51648;&#44552; &#47568;&#54616;&#45716; &#44275;&#51008;&amp;nbsp;&#51792;&#54784;~~~ &#45796;&#47480;&amp;nbsp;&#49436;&#48260;&#51060;&#44592;&#50640;&amp;nbsp;&#54869;&#51064;&#51060; &#54596;&#50836;&#54664;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#44536;&#47084;&#44256; &#48372;&#45768;&amp;nbsp;VS&#50640;&#49436; Memory&amp;nbsp;Leak&#51012; &#54869;&#51064;&#54616;&#45716; &#50668;&#47084; &#48169;&#48277;&#51012;&amp;nbsp;&#51060;&#48264;&#44592;&#54924;&#50640; &#51221;&#47532;&#45208; &#54644;&#50556;&#44192;&#45796;.&lt;/p&gt;
&lt;p&gt;&#54637;&#49345; &#50948;&#44592;&#45716; &#44592;&#54924;&#44032; &#46108;&#45796;&#44256; &#54616;&#51648; &#50506;&#50520;&#45716;&#44032;~~ &#52908;&#52908;&#52908;&#52908;&#52908;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h6&gt;VS Debugger&#47484; &#51060;&#50857;&#54616;&#45716;&amp;nbsp;&#48169;&#48277;&lt;/h6&gt;
&lt;p&gt;MSDN&#50640; &#45208;&#50752;&#51080;&#45716; &#44163;&#52376;&#47100; &#44032;&#51109; &#49772;&#50868; &#48169;&#48277;&#51008;&amp;nbsp;VS&#51032;&amp;nbsp;API&#47484; &#51060;&#50857;&#54616;&#45716; &#44163;&#51060;&#45796;.&lt;/p&gt;
&lt;p&gt;&#45796;&#51020;&#51032; &#54632;&#49688;&#47484; &#54532;&#47196;&#44536;&#47016;&#51060; &#51333;&#47308;&#54616;&#45716; &#49884;&#51216;&#50640; &#45347;&#51004;&#47732;, Output &#52285;&#50640; &#44536; &#44208;&#44284;&#44032; &#45208;&#50728;&#45796;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;&lt;strong&gt;_CrtDumpMemoryLeaks();&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#44536;&#47088;&#45936; &#45796;&#51020;&#44284; &#44057;&#51008; &#44221;&#50864;&#50640;&#45716; &#47928;&#51228;&#44032; &#48156;&#49373;&#54624; &#49688;&#46020; &#51080;&#45796;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;class MyClass&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;public:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;MyClass(void)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;_data = new char[100];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;/li&gt;
&lt;li&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;~MyClass(void)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;delete[] _data;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;/li&gt;
&lt;li&gt;&amp;nbsp;private:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;char* _data;&lt;br /&gt;
};&lt;/li&gt;
&lt;li&gt;MyClass _instance;&lt;/li&gt;
&lt;li&gt;int main(int argc, char* argv[])&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;_CrtDumpMemoryLeaks();&amp;nbsp;&lt;br /&gt;
&amp;nbsp;return 0;&lt;br /&gt;
}&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&#45796;&#51020;&#44284; &#44057;&#51008; &#44221;&#50864;&#45716; &#51204;&#50669;&#50640;&#49436; Class&#47484; &#49440;&#50616;&#54616;&#50688;&#44592; &#46412;&#47928;&#50640;&lt;/p&gt;
&lt;p&gt;main&#51060; &#49884;&#51089;&#54616;&#44592; &#51204;&#50640; heap &#50689;&#50669;&#50640; &#54624;&#45817;&#46104;&#44256;, main&#51060; &#51333;&#47308;&#54620; &#51060;&#54980;&#50640;&amp;nbsp;heap&#50640;&#49436; &#51228;&#44144;&#44032; &#46108;&#45796;.&lt;/p&gt;
&lt;p&gt;&#44536;&#47084;&#45208;&amp;nbsp;_CrtDumpMemoryLeaks()&#45716;&amp;nbsp;main&#54632;&#49688;&#44032; &#51333;&#47308;&#51649;&#51204;&#50640;&amp;nbsp;&#47700;&#47784;&#47532;&#50689;&#50669;&#51012; &#44160;&#49324;&#54616;&#44592; &#46412;&#47928;&#50640; &#45796;&#51020;&#44284; &#44057;&#51060; Memory leak&#51004;&#47196; &#44208;&#51221;&#45212;&#45796;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;&lt;q&gt;Detected memory leaks!&lt;br /&gt;
Dumping objects -&amp;gt;&lt;br /&gt;
c:\program files\microsoft visual studio 8\vc\include\crtdbg.h(1150) : {50} normal block at 0x003A2F50, 100 bytes long.&lt;br /&gt;
&amp;nbsp;Data: &amp;lt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt; CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD&lt;br /&gt;
Object dump complete.&lt;br /&gt;
The program '[3868] MemoryLeakTest.exe: Native' has exited with code 0 (0x0).&lt;br /&gt;&lt;/q&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#51060;&#47084;&#54620; &#44221;&#50864;&#47484;&amp;nbsp;&#45824;&#48708;&#54616;&#50668;&amp;nbsp;main &#54632;&#49688;&#51032; &#49884;&#51089; &#48512;&#48516;&#50640; &#45796;&#51020; &#48512;&#48516;&#51012; &#51077;&#47141;&#54616;&#47732; &#51060;&#47084;&#54620; &#47928;&#51228;&#47484; &#54644;&#44208;&#54624; &#49688; &#51080;&#45800;&#45796;.&lt;/p&gt;
&lt;p&gt;&#49892;&#51228;&#47196; &#51096; &#46108;&#45796; ^^;;;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;&lt;strong&gt;_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&#51060;&#47111;&#44172; &#51089;&#49457;&#46108; &#53076;&#46300;&#51032; &#50696;&#45716; &#45796;&#51020;&#44284; &#44057;&#45796;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;#define _CRTDBG_MAP_ALLOC&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;crtdbg.h&amp;gt;&lt;/li&gt;
&lt;li&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;/li&gt;
&lt;li&gt;class MyClass&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;public:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;MyClass(void)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;_data = new char[100];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;/li&gt;
&lt;li&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;~MyClass(void)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;delete[] _data;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;/li&gt;
&lt;li&gt;&amp;nbsp;private:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;char* _data;&lt;br /&gt;
};&lt;/li&gt;
&lt;li&gt;MyClass _instance;&lt;/li&gt;
&lt;li&gt;int main(int argc, char* argv[])&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;strong&gt;char* a = new char[100];&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;return 0;&lt;br /&gt;
}&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&#52280;&#44256;&#47196; Memory Leak&#51060; &#48156;&#49373;&#54616;&#51648; &#50506;&#51004;&#47732; &#50500;&#47924;&#47088; &#47700;&#49464;&#51648;&#46020;&amp;nbsp;&#46888;&#51648; &#50506;&#45716;&#46319;~~&lt;/p&gt;
&lt;p&gt;&#51648;&#44552;&#51032; &#50696;&#51228;&#47484; &#48372;&#47732;&amp;nbsp;&#52240;&#54616;&#44172; &#54620; &#44275;&#50640; &#51068;&#48512;&#47084; &#54616;&#45208; &#45347;&#50612;&#45480;&#45796;!!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#44536;&#47100;&amp;nbsp;Output&amp;nbsp;&#52285;&#50640;&#49436;&#45716; &#44208;&#44284;&#44032;&amp;nbsp;&#45796;&#51020;&#44284;&amp;nbsp;&#44057;&#51060; &#45208;&#50728;&#45796;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;Detected memory leaks!&lt;br /&gt;
Dumping objects -&amp;gt;&lt;br /&gt;
c:\program files\microsoft visual studio 8\vc\include\crtdbg.h(1150) : {51} normal block at 0x003A2FF0, 100 bytes long.&lt;br /&gt;
&amp;nbsp;Data: &amp;lt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt; CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD&lt;br /&gt;
Object dump complete.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&#51473;&#50836;&#54620; &#48512;&#48516;&#51008; &#46244;&#50640;&amp;nbsp;&#45208;&#50724;&#45716;&amp;nbsp;{51}&#51060;&amp;nbsp;&#53076;&#46300;&#51032; &#46972;&#51064;&#51060; &#50500;&#45768;&#46972;&#45716; &#44163;&#51060;&#45796;.!!!&lt;/p&gt;
&lt;p&gt;&#51221;&#54869;&#55176;&#45716;&amp;nbsp;&#51096; &#47784;&#47476;&#44192;&#51648;&#47564; Object&amp;nbsp;Simbol&#51032; &#50948;&#52824;&#44032; &#50500;&#45776;&#44620; &#49373;&#44033;&#51473; &#12641;&#12641;;;;&lt;/p&gt;
&lt;p&gt;_CrtSetBreakAlloc(51); &#51032; &#54632;&#49688;&#47484; &#51060;&#50857;&#54616;&#50668; main program&#50640;&#49436; &#46028;&#47532;&#47732; &#44536; &#50948;&#52824;&#47484; Call Stack&#50640;&#49436; &#52286;&#51012; &#49688; &#51080;&#45796;.&lt;/p&gt;
&lt;p&gt;&#45908; &#51339;&#51008;&amp;nbsp;&#48169;&#48277;&#51060; &#51080;&#51012; &#44163; &#44057;&#51648;&#47564;, &#51060;&#44163;&#47564;&#51004;&#47196;&#46020; &#45208;&#50640;&#44172;&#45716; &#50500;&#51452; &#45208;&#51060;&#50276;&#54616;&#45796;.&lt;/p&gt;
&lt;p&gt;&#54841; &#51339;&#51008; &#48169;&#48277; &#50508;&#44256; &#44228;&#49888; &#48516;&#51008; &#51328; &#50508;&#47140;&#51452;&#49464;&#50857;~~~&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#51060;&#48264; &#45236;&#50857;&#44284; &#44288;&#47144;&#46108; Link&#45716; &#45796;&#51020;&#44284; &#44057;&#45796;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MSDN&#51032; &#54364;&#51456;&#54868;&#46108; &#46385;&#46385;&#54620; &#45236;&#50857;:&amp;nbsp;&lt;a href="http://msdn2.microsoft.com/ko-kr/library/x98tx3cf(VS.80).aspx" title="http://msdn2.microsoft.com/ko-kr/library/x98tx3cf(VS.80).aspx" class="external"&gt;http://msdn2.microsoft.com/ko-kr/library/x98tx3cf(VS.80).aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;VS&#50640;&#49436;&amp;nbsp;&#50612;&#46523;&#44172; Macro&#47484; &#51060;&#50857;&#54616;&#50668; &#52376;&#47532;&#54616;&#45716;&#51648; &#49444;&#47749;&#54620; &#45236;&#50857;: &lt;a href="http://smilk.egloos.com/130469" title="http://smilk.egloos.com/130469" class="external"&gt;http://smilk.egloos.com/130469&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&#51312;&#44552;&#51008; &#45796;&#47480; &#45236;&#50857;&#51060;&#51648;&#47564; &#44536;&#47000;&#46020; &#50508;&#50500;&#46160;&#47732; &#54588;&#44032;&#46104;&#44256; &#49332;&#51060;&#46104;&#45716; &#44163;&#51004;&#47196; STL&#51012; &#50024;&#50556;&#54616;&#45716; &#51060;&#50976;: &lt;a href="http://www.debuglab.com/knowledge/autoptr.html"&gt;http://www.debuglab.com/knowledge/autoptr.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Bound Checker &#48143; &#45796;&#47480;&amp;nbsp;Tool&#51012; &#49324;&#50857;&#54616;&#50668; Memory&amp;nbsp;Leak&#51012; &#49324;&#50857;&#54616;&#45716; &#48169;&#48277;&#51008;&lt;/p&gt;
&lt;p&gt;&#45236;&#51068; &#51068;&#52237; &#52636;&#44540;&#51012; &#54644;&#50556;&#54616;&#45716; &#44288;&#44228;&#47196; &#45796;&#51020;&#48264;&#50640; &#50024;&#50556;&#44192;&#45796;~~&lt;/p&gt;
&lt;p&gt;&#44536;&#47100; &#44256;&#50577;&#51060;&#46020; &#51096;&#51088;&#44256; &#45208;&#46020; &#51096;&#51088;&#50556;&#51669;~~&lt;/p&gt;
</source>
  <rights nil="true"></rights>
  <creator>again4you</creator>
  <contributor_modified>again4you</contributor_modified>
  <version type="integer">61</version>
  <tags></tags>
</page>
