¡¾×ª¡¿Ó¦Óà Valgrind ·¢ÏÖ Linux ³ÌÐòµÄÄÚ´æÎÊÌâ
¼¶±ð£º ³õ¼¶
Ñî ¾ (cdlyangj@cn.ibm.com), Èí¼þ¹¤³Ìʦ, IBM
2008 Äê 11 ÔÂ 27 ÈÕ
ÈçºÎ¶¨Î»Ó¦ÓóÌÐò¿ª·¢ÖеÄÄÚ´æÎÊÌ⣬һֱÊÇ inux Ó¦ÓóÌÐò¿ª·¢ÖеÄÆ¿¾±ËùÔÚ¡£ÓÐÒ»¿î·Ç³£ÓÅÐãµÄ linux Ï¿ªÔ´µÄÄÚ´æÎÊÌâ¼ì²â¹¤¾ß£ºvalgrind£¬Äܹ»¼«´óµÄ°ïÖúÄã½â¾öÉÏÊöÎÊÌâ¡£ÕÆÎÕ valgrind µÄʹÓÃÒÔ¼°¹¤×÷ÔÀí£¬Äܹ»ÓÐЧµØ¶¨Î»½ø¶ø±ÜÃâÓ¦Óÿª·¢ÖеÄÄÚ´æÎÊÌâ¡£
»ØÒ³Ê×
Valgrind ¸ÅÊö
Ìåϵ½á¹¹
ValgrindÊÇÒ»Ì×LinuxÏ£¬¿ª·ÅÔ´´úÂ루GPL V2£©µÄ·ÂÕæµ÷ÊÔ¹¤¾ßµÄ¼¯ºÏ¡£ValgrindÓÉÄںˣ¨core£©ÒÔ¼°»ùÓÚÄں˵ÄÆäËûµ÷ÊÔ¹¤¾ß×é³É¡£ÄÚºËÀàËÆÓÚÒ»¸ö¿ò¼Ü£¨framework£©£¬ËüÄ£ÄâÁËÒ»¸öCPU»·¾³£¬²¢Ìṩ·þÎñ¸øÆäËû¹¤¾ß£»¶øÆäËû¹¤¾ßÔòÀàËÆÓÚ²å¼þ (plug-in)£¬ÀûÓÃÄÚºËÌṩµÄ·þÎñÍê³É¸÷ÖÖÌض¨µÄÄÚ´æµ÷ÊÔÈÎÎñ¡£ValgrindµÄÌåϵ½á¹¹ÈçÏÂͼËùʾ£º
ͼ 1 Valgrind Ìåϵ½á¹¹
Valgrind°üÀ¨ÈçÏÂһЩ¹¤¾ß£º
Memcheck¡£ÕâÊÇvalgrindÓ¦ÓÃ×î¹ã·ºµÄ¹¤¾ß£¬Ò»¸öÖØÁ¿¼¶µÄÄÚ´æ¼ì²éÆ÷£¬Äܹ»·¢ÏÖ¿ª·¢Öоø´ó¶àÊýÄÚ´æ´íÎóʹÓÃÇé¿ö£¬±ÈÈ磺ʹÓÃδ³õʼ»¯µÄÄڴ棬ʹÓÃÒѾÊÍ·ÅÁ˵ÄÄڴ棬ÄÚ´æ·ÃÎÊÔ½½çµÈ¡£ÕâÒ²ÊDZ¾ÎĽ«Öصã½éÉܵIJ¿·Ö¡£
Callgrind¡£ËüÖ÷ÒªÓÃÀ´¼ì²é³ÌÐòÖк¯Êýµ÷Óùý³ÌÖгöÏÖµÄÎÊÌâ¡£
Cachegrind¡£ËüÖ÷ÒªÓÃÀ´¼ì²é³ÌÐòÖлº´æʹÓóöÏÖµÄÎÊÌâ¡£
Helgrind¡£ËüÖ÷ÒªÓÃÀ´¼ì²é¶àÏ̳߳ÌÐòÖгöÏֵľºÕùÎÊÌâ¡£
Massif¡£ËüÖ÷ÒªÓÃÀ´¼ì²é³ÌÐòÖжÑջʹÓÃÖгöÏÖµÄÎÊÌâ¡£
Extension¡£¿ÉÒÔÀûÓÃcoreÌṩµÄ¹¦ÄÜ£¬×Ô¼º±àдÌض¨µÄÄÚ´æµ÷ÊÔ¹¤¾ß¡£
Linux ³ÌÐòÄÚ´æ¿Õ¼ä²¼¾Ö
Òª·¢ÏÖLinuxϵÄÄÚ´æÎÊÌ⣬Ê×ÏÈÒ»¶¨ÒªÖªµÀÔÚLinuxÏ£¬ÄÚ´æÊÇÈçºÎ±»·ÖÅäµÄ£¿ÏÂͼչʾÁËÒ»¸öµäÐ͵ÄLinux C³ÌÐòÄÚ´æ¿Õ¼ä²¼¾Ö£º
ͼ 2£º µäÐÍÄÚ´æ¿Õ¼ä²¼¾Ö
Ò»¸öµäÐ͵ÄLinux C³ÌÐòÄÚ´æ¿Õ¼äÓÉÈçϼ¸²¿·Ö×é³É£º
´úÂë¶Î£¨.text£©¡£ÕâÀï´æ·ÅµÄÊÇCPUÒªÖ´ÐеÄÖ¸Áî¡£´úÂë¶ÎÊǿɹ²ÏíµÄ£¬ÏàͬµÄ´úÂëÔÚÄÚ´æÖÐÖ»»áÓÐÒ»¸ö¿½±´£¬Í¬Ê±Õâ¸ö¶ÎÊÇÖ»¶ÁµÄ£¬·ÀÖ¹³ÌÐòÓÉÓÚ´íÎó¶øÐÞ¸Ä×ÔÉíµÄÖ¸Áî¡£
³õʼ»¯Êý¾Ý¶Î£¨.data£©¡£ÕâÀï´æ·ÅµÄÊdzÌÐòÖÐÐèÒªÃ÷È·¸³³õʼֵµÄ±äÁ¿£¬ÀýÈçλÓÚËùÓк¯ÊýÖ®ÍâµÄÈ«¾Ö±äÁ¿£ºint val=100¡£ÐèҪǿµ÷µÄÊÇ£¬ÒÔÉÏÁ½¶Î¶¼ÊÇλÓÚ³ÌÐòµÄ¿ÉÖ´ÐÐÎļþÖУ¬ÄÚºËÔÚµ÷ÓÃexecº¯ÊýÆô¶¯¸Ã³ÌÐòʱ´ÓÔ´³ÌÐòÎļþÖжÁÈë¡£
δ³õʼ»¯Êý¾Ý¶Î£¨.bss£©¡£Î»ÓÚÕâÒ»¶ÎÖеÄÊý¾Ý£¬ÄÚºËÔÚÖ´ÐиóÌÐòÇ°£¬½«Æä³õʼ»¯Îª0»òÕßnull¡£ÀýÈç³öÏÖÔÚÈκκ¯ÊýÖ®ÍâµÄÈ«¾Ö±äÁ¿£ºint sum;
¶Ñ£¨Heap£©¡£Õâ¸ö¶ÎÓÃÓÚÔÚ³ÌÐòÖнøÐÐ
Ïà¹ØÎĵµ£º
Ò»¡¢±àÒëºÍÁ¬½Ó
Ò»°ãÀ´Ëµ£¬Èç¹û¿âµÄÍ·Îļþ²»ÔÚ /usr/include Ŀ¼ÖУ¬ÄÇôÔÚ±àÒëµÄʱºòÐèÒªÓà -I ²ÎÊýÖ¸¶¨Æä·¾¶¡£ÓÉÓÚͬһ¸ö¿âÔÚ²»Í¬ÏµÍ³ÉÏ¿ÉÄÜλÓÚ²»Í¬µÄĿ¼Ï£¬Óû§°²×°¿âµÄʱºòÒ²¿ÉÒÔ½«¿â°²×°ÔÚ²»Í¬µÄĿ¼Ï£¬ËùÒÔ¼´Ê¹Ê¹ÓÃͬһ¸ö¿â£¬ÓÉÓÚ¿âµÄ·¾¶µÄ²»Í¬£¬Ôì³ÉÁËÓà -I ²ÎÊýÖ¸ ......
[Ìù½Ì³Ì]LinuxÏÂSquidµÄʹÓÃ
×öΪÑÛÏÂ×îÁ÷ÐеIJÙ×÷ϵͳ£¬LinuxÒѾԽÀ´Ô½Êܵ½ÊÀÈ˵ĹØ×¢¡£ËäȻĿǰLinuxµÄÈí¼þ»¹²»ÊǺܷḻ£¬
Ìæ´úWINDOWS×÷ΪÆÕͨPC»ú²Ù×÷ϵͳ»¹ÎªÊ±¹ýÔ磬µ«ÊÇÔÚ·þÎñÆ÷ÁìÓò£¬LinuxµÄÎȶ¨ÐÔ£¬¿É²Ù×÷ÐÔ¾ö²»
ÊäÓÚÈκβÙ×÷ϵͳ£¬²¢ÇÒÒ²ÓÐÓÅÐãµÄÈí¼þÖ§³Ö¡£Squid¾ÍÊÇÆäÖÐÖ®Ò»¡£Linux¼ÓSquidµÄ×éºÏ×öÎ ......
1.Ñé֤ϵͳȷʵÔËÐÐÁËTCP/IPÐÒ飬²¢ÇÒÓµÓÐÒ»¸öIPµØÖ·¡£Èç¹ûûÓУ¬ÇåÌí¼ÓÐÒéºÍµØÖ·¡£
2.Èç¹û·þÎñÆ÷»¹ÔËÐÐÆäËüÐÒ飨IPX/SPX¡¢NetBEUIµÈÐÒ飩£¬ÖÁÉÙÔÚ½øÐвâÊÔʱҪɾ³ýÕâЩÐÒ飬ȻºóÒÔºóÔÙ»Ö¸´ÕâЩÐÒé¡£
3.Ñé֤ʹÓÃÕą̂·þÎñÆ÷µÄIPµØÖ·ÊÇ·ñ¿ÉÒÔ“ping”ͨϵͳ¡£Èç¹û²»ÄÜ£¬ÑéÖ¤Äã´Ó·þÎñÆ÷±¾ÉíÊÇ·ñ¿ÉÒÔ“p ......
ÓÐʱºòÎı¾Îļþ£¨TXT£©´Ówindows´æÈëlinuxʱ£¬
ÔÚlinuxÏÂÃæ²é¿´ÎļþµÄÄÚÈݾͻá±ä³ÉÂÒÂ룬
ÓÃÒÔÏÂÃüÁî¿ÉÒÔ»¹txtÎļþ±¾À´µÄÃæÄ¿¡£
GB2312ΪwindowsϵͳÖеÄÄÚÂ룬Èç¹ûÊÇÆäËûµÄÇë¸ÄΪÏàÓ¦ÄÚÂë
UTF-8ÊÇת»»ºóµÄÄÚÂ룬ÒòΪLINUX ϵͳÊÇÖ§³ÖUTF-8µÄ£¬
ËùÒÔÎļþÄÚÈݼ´¿ÉÕý³£ÏÔʾ¡£
iconv -f GB2312 -t UTF-8 tmp.txt>tmp1 ......
ÔÚ linux ÏÂÅäÖÃ ITK
1. ÏÂÔØ CMake£ºhttp://www.cmake.org/cmake/resources/software.html
Ϊ·½±ã°²×°£¬ÕâÀïÏÂÔضþ½øÖÆÎļþ£¬Ñ¡ÔñÏÂÔØ£º cmake-2.6.4-Linux-i386.sh
2. °²×° CMake, µ½ cmake-2.6.4-Linux-i386.sh ´æ·ÅµÄĿ¼,ÊäÈ룬¿ÉÓà TAB ¼ü·½±ã²¹ÆëÃüÁî
#./ cmake-2. ......