¡¡¡¡´ÓÏÂÃæµÄ±àÒ뱨¸æÖУ¬ÎÒÃÇ¿ÉÒÔ¿´µ½Õâ¶Î³ÌÐòÖÐÓÐÈý¸ö´íÎ󣺡±ÄÚ´æй©¡±£»¡°±äÁ¿Î´³õʼ»¯¡±£»¡° ¿ÕÖ¸Õë²Ù×÷¡±
"code2.cpp", line 10: warning: variable "b" was set but never used int b, c; ^ BEAM_VERSION=3.4.2 BEAM_ROOT=/home/hanzb/memdetect BEAM_DIRECTORY_WRITE_INNOCENTS= BEAM_DIRECTORY_WRITE_ERRORS= -- ERROR23(heap_memory) /*memory leak*/ >>>ERROR23_LeakTest_7b00071dc5cbb458 "code2.cpp", line 24: memory leak ONE POSSIBLE PATH LEADING TO THE ERROR: "code2.cpp", line 22: allocating using `operator new[]' (this memory will not be freed) "code2.cpp", line 22: assigning into `Logmsg' "code2.cpp", line 24: deallocating `Logmsg' because exiting its scope (losing last pointer to the memory) -- ERROR1 /*uninitialized*/ >>>ERROR1_foo_60c7889b2b608 "code2.cpp", line 16: uninitialized `c' ONE POSSIBLE PATH LEADING TO THE ERROR: "code2.cpp", line 10: allocating `c' "code2.cpp", line 13: the if-condition is false "code2.cpp", line 16: getting the value of `c' VALUES AT THE END OF THE PATH: p != 0 -- ERROR2 /*operating on NULL*/ >>>ERROR2_foo_af57809a2b615 "code2.cpp", line 17: invalid operation involving NULL pointer ONE POSSIBLE PATH LEADING TO THE ERROR: "code2.cpp", line 13: the if-condition is true (used as evidence that error is possible) "code2.cpp", line 16: the if-condition is true "code2.cpp", line 17: invalid operation `[]' involving NULL pointer `p' VALUES AT THE END OF THE PATH: c = 1 p = 0 a <= 0 |
¡¡¡¡£¨3£© ÄÚǶ³ÌÐò
¡¡¡¡¿ÉÒÔÖØÔØÄÚ´æ·ÖÅäºÍÊͷź¯Êý new ºÍ delete£¬È»ºó±àд³ÌÐò¶¨ÆÚͳ¼ÆÄÚ´æµÄ·ÖÅäºÍÊÍ·Å£¬´ÓÖÐÕÒ³ö¿ÉÄܵÄÄÚ´æй©¡£»òÕßµ÷ÓÃϵͳº¯Êý¶¨ÆÚ¼àÊÓ³ÌÐò¶ÑµÄ´óС£¬¹Ø¼üҪȷ¶¨¶ÑµÄÔö³¤ÊÇ驶ø²»ÊǺÏÀíµÄÄÚ´æʹÓá£ÕâÀà·½·¨±È½Ï¸´ÔÓ£¬ÔÚÕâ¾Í²»¸ø³öÏêϸÀý×ÓÁË¡£
¡¡¡¡3. ¶¯Ì¬ÔËÐмì²â
¡¡¡¡ÊµÊ±¼ì²â¹¤¾ßÖ÷ÒªÓÐ valgrind£¬ Rational purify µÈ¡£
¡¡¡¡£¨1£© Valgrind
¡¡¡¡valgrind ÊÇ°ïÖú³ÌÐòԱѰÕÒ³ÌÐòÀïµÄ bug ºÍ¸Ä½ø³ÌÐòÐÔÄܵŤ¾ß¡£³ÌÐòͨ¹ý valgrind ÔËÐÐʱ£¬valgrind ÊÕ¼¯¸÷ÖÖÓÐÓõÄÐÅÏ¢£¬Í¨¹ýÕâЩÐÅÏ¢¿ÉÒÔÕÒµ½³ÌÐòÖÐDZÔÚµÄ bug ºÍÐÔÄÜÆ¿¾±¡£
¡¡¡¡Valgrind ÏÖÔÚÌṩ¶à¸ö¹¤¾ß£¬ÆäÖÐ×îÖØÒªµÄÊÇ Memcheck£¬Cachegrind£¬Massif ºÍ Callgrind¡£Valgrind ÊÇÔÚ Linux ϵͳÏ¿ª·¢Ó¦ÓóÌÐòʱÓÃÓÚµ÷ÊÔÄÚ´æÎÊÌâµÄ¹¤¾ß¡£ËüÓÈÆäÉó¤·¢ÏÖÄÚ´æ¹ÜÀíµÄÎÊÌ⣬Ëü¿ÉÒÔ¼ì²é³ÌÐòÔËÐÐʱµÄÄÚ´æй©ÎÊÌâ¡£ÆäÖÐµÄ memecheck ¹¤¾ß¿ÉÒÔÓÃÀ´Ñ°ÕÒ c¡¢c++ ³ÌÐòÖÐÄÚ´æ¹ÜÀíµÄ´íÎ󡣿ÉÒÔ¼ì²é³öÏÂÁм¸ÖÖÄÚ´æ²Ù×÷ÉϵĴíÎó£º
¡¡¡¡¶ÁдÒѾÊͷŵÄÄÚ´æ
¡¡¡¡¶ÁдÄÚ´æ¿éÔ½½ç£¨´ÓÇ°»òÕß´Óºó£©
¡¡¡¡Ê¹Óû¹Î´³õʼ»¯µÄ±äÁ¿
¡¡¡¡½«ÎÞÒâÒåµÄ²ÎÊý´«µÝ¸øϵͳµ÷ÓÃ
¡¡¡¡ÄÚ´æй©