{"id":138,"date":"2006-08-30T01:50:17","date_gmt":"2006-08-29T16:50:17","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=138"},"modified":"2017-01-31T19:50:37","modified_gmt":"2017-01-31T10:50:37","slug":"memory-leak-%ea%b2%80%ec%b6%9c%ed%95%b4-%ec%a3%bc%eb%8a%94-%ec%98%a4%ed%94%88%ec%86%8c%ec%8a%a4","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=138","title":{"rendered":"Memory Leak \uac80\ucd9c\ud574 \uc8fc\ub294 \uc624\ud508\uc18c\uc2a4"},"content":{"rendered":"<p>\uc608\uc804\uc5d0 VC6.0\uc744 \uc0ac\uc6a9\ud560\ub54c \ucf54\ub529\ud558\uace0 Debug\ub85c \ucef4\ud30c\uc77c\ud558\uba74 \uc5b4\ub290 \uc9c0\uc810\uc5d0\uc11c \uba54\ubaa8\ub9ac \ub204\uc218(Leak)\uac00 \ubc1c\uc0dd\ud558\ub294\uc9c0 IDE\uc758 \ucd9c\ub825\ucc3d\uc5d0\uc11c \uc54c\ub824\uc8fc\uc5c8\ub2e4. \uc6d0\ub798 VC6.0\uc774 \uadf8\ub7ac\ub294\uc9c0, \uc544\ub2c8\uba74 \ub098\ub3c4 \ubaa8\ub974\uac8c \ubb54\uac00\ub97c \uc124\uce58\ud574\uc11c \uadf8\ub7ac\ub294\uc9c0\ub294 \uae30\uc5b5\ub098\uc9c0 \uc54a\uc9c0\ub9cc \ub9d0\uc774\ub2e4. \uadf8\ub7f0\ub370 VS2003 \uc774\ud6c4\ub85c\ub294 \uba54\ubaa8\ub9ac \ub204\uc218\uc5d0 \ub300\ud55c \ubcf4\uace0\ub97c \ud574\uc8fc\uc9c0 \uc54a\ub294 \uac83\uc774\ub2e4. \ub09c \ud55c\ub3d9\uc548 \uc544.. \uba54\ubaa8\ub9ac \ub204\uc218\uac00 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\uac8c \uc798\ud588\ub098\ubcf4\ub2e4 \ud588\ub294\ub370.. \uadf8\uac8c \uc544\ub2c8\ub780\uac83\uc744 \uc54c\uace0 \ub09c\ud6c4, \uba54\ubaa8\ub9ac \ub204\uc218\ub97c \uac80\ucd9c\ud574\uc8fc\ub294 \ud234\uc744 \ucc3e\ub2e4\uac00 \uad1c\ucc2c\uc740 \ub140\uc11d \ub458\uc744 \ub9cc\ub0ac\ub2e4.<\/p>\n<p>http:\/\/www.codeproject.com\/tools\/visualleakdetector.asp<br \/>\nhttp:\/\/www.codeproject.com\/tools\/leakfinder.asp<\/p>\n<p>\uac04\ub2e8\ud788 \uc18c\uac1c\ub97c \ud558\uba74, \uccab\ubc88\uc9f8\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c Link\ud574\uc8fc\uace0 vld.h\ub77c\ub294 \ud5e4\ub354\ud30c\uc77c \ud558\uba74 include \ud574\uc8fc\uba74 \uba54\ubaa8\ub9ac \ub204\uc218 \uac80\ucd9c\uc758 \uc900\ube44\uac00 \ub05d\ub09c\ub2e4. \ub204\uc218\uc758 \uacb0\uacfc\ub294 IDE \ucc3d\uc5d0\uc11c \ud574\uc8fc\uac8c \ub418\ub294\ub370 \uc544\ub798\uc758 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uace0 \ucef4\ud30c\uc77c\ud558\uba74 IDE\uc758 \ucd9c\ub825\ucc3d\uc5d0 \ub204\uc218\uc758 \uc9c0\uc810\uacfc \ub0b4\uc6a9\uc744 \ucd9c\ub825\ud574\uc900\ub2e4.<\/p>\n<pre>#include \"vld.h\"\r\n\r\nint main()\r\n{\r\n    char *pChar = new char[100];\r\n\r\n    return 0;\r\n}<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/725840.jpg\" width=\"538\" height=\"360\" \/><\/p>\n<p>\uc774\uac83\uc740 \ud544\uc790\uac00 VS6.0\uc5d0\uc11c \uacbd\ud5d8\ud588\ub358 \ubc14\ub85c \uadf8\uac83\uc774\uc600\ub2e4. \uadf8\ub7ec\ub098 \ub2e8\uc810\uc740 \ud504\ub85c\uc81d\ud2b8\uc758 \ucf54\ub4dc\uc0dd\uc131\uc774 \ub2e4\uc911\uc2a4\ub808\ub4dcDLL\uc774\ub0d0, \uadf8\ub0e5 \ub2e4\uc911\uc2a4\ub808\ub4dc\ub0d0\uc5d0 \ub530\ub77c \ub2e4\ub978 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ub9c1\ud06c\ud574\uc918\uc57c \ud55c\ub2e4\ub294 \uac83\uacfc CRT \uba54\ubaa8\ub9ac\uc5d0 \ub300\ud55c \ub204\uc218\ub9cc\uc744 \uac80\ucd9c\ud574\uc8fc\uba70 COM \uba54\ubaa8\ub9ac \ub204\uc218\ub294 \uac80\ucd9c\ud574\uc8fc\uc9c0 \ubabb\ud55c\ub2e4. \uc989, COM\uad70\uc758 \ud568\uc218\uc911\uc5d0 \uba54\ubaa8\ub9ac\ub97c \ud560\ub2f9\ud574\uc8fc\ub294 CoTaskMemAlloc \ud568\uc218\uc5d0 \ub300\ud55c \uba54\ubaa8\ub9ac \ub204\uc218\ub294 \uac80\ucd9c\ud574\uc8fc\uc9c0 \ubabb\ud558\ub294 \uac83\uc774\ub2e4. \uadf8\ub7ec\ub098 IDE\uc640 \uc5f0\ub3d9\ub418\uc5b4 IDE\uc758 \ucd9c\ub825\ucc3d\uc5d0\uc11c \ub204\uc218\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \ub354\ube14\ud074\ub9ad\ud558\uba74 \ub204\uc218\uc9c0\uc810\uc758 \ucf54\ub4dc\ub85c \ucee4\uc11c\uac00 \uc774\ub3d9\ud558\ub294 \uae30\ub2a5\uc740 \uc0c1\ub2f9\ud788 \ub9e4\ub825\uc801\uc774\ub2e4.<\/p>\n<p>\ub05d\uc73c\ub85c \ub450\ubc88\uc9f8\ub294. \ud558\ub098\uc758 \ud5e4\ub354\ud30c\uc77c\uacfc \uadf8\uc5d0 \ub300\ud55c \ud558\ub098\uc758 \uc18c\uc2a4\ud30c\uc77c\ub85c \uad6c\uc131\ub418\ub294 \uac04\ub2e8\ud55c \uad6c\uc870\uc778\ub370, StackWalker.h \ud30c\uc77c\uc744 include \ud574\uc8fc\uace0 \ub204\uc218\uac80\ucd9c \uc2dc\uc791\uacfc \ub05d\uc744 \uc9c0\uc815\ud558\ub294 \ud568\uc218\ub97c \ud638\ucd9c\ud574\uc90c\uc73c\ub85c\uc368 \uba54\ubaa8\ub9ac \ub204\uc218 \uac80\ucd9c\uc758 \uc900\ube44\uac00 \ub05d\ub098\uac8c \ub418\uc5b4 \ubb34\ucc99 \uc0ac\uc6a9\ud558\uae30\uac00 \uc27d\ub2e4. \uac8c\ub2e4\uac00 CRT \uba54\ubaa8\ub9ac \ubfd0\uc544\ub2c8\ub77c COM \uba54\ubaa8\ub9ac\uc5d0 \ub300\ud55c \ub204\uc218\uac80\ucd9c\uae4c\uc9c0 \uac00\ub2a5\ud558\ub2e4. \ub610\ud55c \uba54\ubaa8\ub9ac \ub204\uc218\uc5d0 \ub300\ud55c \uc815\ubcf4\ub294 3\uac00\uc9c0\ub85c \uad6c\ubd84\ub418\ub294\ub370, \uac04\ub2e8\ud55c SImple \ubaa8\ub4dc, \uc880\ub354 \uc790\uc138\ud55c Advanced \ubaa8\ub4dc, XML \ubaa8\ub4dc\uc774\ub2e4. \ubaa8\ub450 \uc678\ubd80 \ud30c\uc77c\uc744 \ud1b5\ud574 \ub204\uc218 \uc815\ubcf4\ub97c \uac1c\ubc1c\uc790\uc5d0\uac8c Report\ud55c\ub2e4. \ud558\uc9c0\ub9cc \uccab\ubc88\uc9f8 \uc18c\uac1c\ud588\ub358 \ub204\uc218\ud234\uacfc\ub294 \ub2ec\ub9ac IDE\uc640 \uc5f0\ub3d9\uc744 \uc9c0\uc6d0\ud574\uc8fc\uc9c0 \uc54a\ub294\ub2e4\ub294 \ub2e8\uc810\uc774 \uc788\ub2e4.<\/p>\n<p>\ud50c\ub81b\ud3fc\uc774 Windows\ub77c\ub294 \ubc94\uc704\uc5d0\ub9cc \ucd08\uc810\uc744 \ub9de\ucdb0\ubcfc\uc801\uc5d0 \ube44\ub85d, \ucd5c\uadfc\uc758 \ucd94\uc138\uac00 Garbage Collection\uc5d0 \uc758\ud55c \uc790\ub3d9 \uba54\ubaa8\ub9ac \uc815\ub9ac \uae30\ub2a5\uc774 \uc788\uc5b4, \uba54\ubaa8\ub9ac \ub204\uc218\uc5d0 \ub300\ud55c \uc5fc\ub824\uac00 \ub9ce\uc774 \uc904\uae30\ub294 \ud558\uc600\uc9c0\ub9cc, .NET\uc5d0\uc11c \uc9c0\uc6d0\ud558\ub294 C++\/CLI\ub294 CLR \uba54\ubaa8\ub9ac\ub9cc\uc774 \uc544\ub2c8\ub77c, CRT, CLR, Stack \uba54\ubaa8\ub9ac\uc5d0 \uae4c\uc9c0 \uc811\uadfc\uc774 \uac00\ub2a5\ud558\ubbc0\ub85c \uba54\ubaa8\ub9ac \ub204\uc218\uc5d0 \ub300\ud574 \uc8fc\uc758\ub97c \uc694\ud55c\ub2e4\ub294 \uc810\uc5d0\uc11c \uc544\uc9c1\uae4c\uc9c0 \uc774\ub7ec\ud55c \uba54\ubaa8\ub9ac \ub204\uc218 \uac80\ucd9c \ub3c4\uad6c\ub294 \uc720\uc6a9\ud558\ub2e4\uace0 \ud558\uaca0\ub2e4.<\/p>\n<p><strong>[\ucc38\uace0] \uc544\ub798 \uae00\uc758 &#8220;\uc918\ub3c4 \ubabb\uba39\ub294&#8221;\uc5d0 \ud574\ub2f9\ud558\ub294 \uc624\ud504\uc18c\uc2a4\uac00 \uc544\ub2d9\ub2c8\ub2e4.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc608\uc804\uc5d0 VC6.0\uc744 \uc0ac\uc6a9\ud560\ub54c \ucf54\ub529\ud558\uace0 Debug\ub85c \ucef4\ud30c\uc77c\ud558\uba74 \uc5b4\ub290 \uc9c0\uc810\uc5d0\uc11c \uba54\ubaa8\ub9ac \ub204\uc218(Leak)\uac00 \ubc1c\uc0dd\ud558\ub294\uc9c0 IDE\uc758 \ucd9c\ub825\ucc3d\uc5d0\uc11c \uc54c\ub824\uc8fc\uc5c8\ub2e4. \uc6d0\ub798 VC6.0\uc774 \uadf8\ub7ac\ub294\uc9c0, \uc544\ub2c8\uba74 \ub098\ub3c4 \ubaa8\ub974\uac8c \ubb54\uac00\ub97c \uc124\uce58\ud574\uc11c \uadf8\ub7ac\ub294\uc9c0\ub294 \uae30\uc5b5\ub098\uc9c0 \uc54a\uc9c0\ub9cc \ub9d0\uc774\ub2e4. \uadf8\ub7f0\ub370 VS2003 \uc774\ud6c4\ub85c\ub294 \uba54\ubaa8\ub9ac \ub204\uc218\uc5d0 \ub300\ud55c \ubcf4\uace0\ub97c \ud574\uc8fc\uc9c0 \uc54a\ub294 \uac83\uc774\ub2e4. \ub09c \ud55c\ub3d9\uc548 \uc544.. \uba54\ubaa8\ub9ac \ub204\uc218\uac00 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\uac8c \uc798\ud588\ub098\ubcf4\ub2e4 \ud588\ub294\ub370.. \uadf8\uac8c \uc544\ub2c8\ub780\uac83\uc744 \uc54c\uace0 \ub09c\ud6c4, \uba54\ubaa8\ub9ac \ub204\uc218\ub97c \uac80\ucd9c\ud574\uc8fc\ub294 \ud234\uc744 \ucc3e\ub2e4\uac00 \uad1c\ucc2c\uc740 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=138\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Memory Leak \uac80\ucd9c\ud574 \uc8fc\ub294 \uc624\ud508\uc18c\uc2a4&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[117,8],"tags":[],"class_list":["post-138","post","type-post","status-publish","format-standard","hentry","category-cpp","category-programming"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=138"}],"version-history":[{"count":2,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/138\/revisions"}],"predecessor-version":[{"id":3738,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/138\/revisions\/3738"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=138"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}