ÔÚ Linuxϵ÷ÊÔÄÚ´æй©µÄ·½·¨

·¢±íÓÚ£º2011-6-02 10:34

×ÖÌ壺´ó ÖРС | ÉÏһƪ | ÏÂһƪ | ÎÒҪͶ¸å

 ×÷ÕߣºÎ´Öª    À´Ô´£º51TestingÈí¼þ²âÊÔÍø²É±à

·ÖÏí£º

¡¡¡¡´ÓÏÂÃæµÄ±àÒ뱨¸æÖУ¬ÎÒÃÇ¿ÉÒÔ¿´µ½Õâ¶Î³ÌÐòÖÐÓÐÈý¸ö´íÎ󣺡±ÄÚ´æй©¡±£»¡°±äÁ¿Î´³õʼ»¯¡±£»¡° ¿ÕÖ¸Õë²Ù×÷¡±

"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++ ³ÌÐòÖÐÄÚ´æ¹ÜÀíµÄ´íÎ󡣿ÉÒÔ¼ì²é³öÏÂÁм¸ÖÖÄÚ´æ²Ù×÷ÉϵĴíÎó£º

¡¡¡¡¶ÁдÒѾ­ÊͷŵÄÄÚ´æ

¡¡¡¡¶ÁдÄÚ´æ¿éÔ½½ç£¨´ÓÇ°»òÕß´Óºó£©

¡¡¡¡Ê¹Óû¹Î´³õʼ»¯µÄ±äÁ¿

¡¡¡¡½«ÎÞÒâÒåµÄ²ÎÊý´«µÝ¸øϵͳµ÷ÓÃ

¡¡¡¡ÄÚ´æй©

43/4<1234>
¼ÛÖµ398ÔªµÄ²âÊԿγÌÃâ·ÑÔùËÍ£¬ÌîÎʾíÁìÈ¡°É£¡

¹Ø×¢51Testing

ÁªÏµÎÒÃÇ

¿ì½ÝÃæ°å Õ¾µãµØͼ ÁªÏµÎÒÃÇ ¹ã¸æ·þÎñ ¹ØÓÚÎÒÃÇ Õ¾³¤Í³¼Æ

·¨ÂɹËÎÊ£ºÉϺ£äîϪÂÉʦÊÂÎñËù ÏîÆåÂÉʦ
°æȨËùÓÐ ÉϺ£²©Îª·åÈí¼þ¼¼Êõ¹É·ÝÓÐÏÞ¹«Ë¾ Copyright©51testing.com 2003-2022
ͶËß¼°Òâ¼û·´À¡£ºwebmaster@51testing.com; ÒµÎñÁªÏµ£ºservice@51testing.com 021-64471599-8017

»¦ICP±¸05003035ºÅ

»¦¹«Íø°²±¸ 31010102002173ºÅ