Cov++ÔÚLinuxϼòµ¥Ê¹Óà Èí¼þ¸²¸ÇÂʹ¤¾ß
Covtool
ÊÇÒ»¸öÓöÔ
C++
´úÂë½øÐÐÔËÐÐʱ¸²¸ÇÂʼì²éµÄ¹¤¾ß£¬¿ÉÒÔÒÔÐÐΪµ¥Î»¼ì²é³öÄÇЩ´úÂëÔÚÔËÐÐÖб»Ê¹Óã¬ÄÇЩûÓÐʹÓá£
1.
°²×°
make
make tests
make install
½«
/usr/local/covtool
Ìí¼Óµ½
PATH
½«
/usr/local/covtools
Ìí¼Óµ½
MANPATH£¨´Ë²½ºÜÖØÒª£¬ËüµÄman±ÈÎĵµ¿¿Æ×µÃ¶à£©
ÎÒÒ»°ãÊÇÌí¼ÓÔÚ/etc/profileÖÐ
2.
ʹÓÃ
Èç¹ûÊÇʹÓÃ
makefile
£º
(1).
½«
g++
Ìæ»»Îª
cov++
¼´¿É¡£
(2).
ÖØÐÂ
build
(3).
ÔËÐÐËùÓеIJâÊÔ£¨Ç뾡Á¿È«µÄ²âÊÔ¸÷ÖÖÇé¿ö£©
(4).
ºÏ²¢
*.covexp
Îļþ£¨
cov++
ϵͳÉè¼ÆÎª¿ÉÒÔÔËÐжà´Î²âÊÔ³ÌÐòµÄ¸÷ÖÖÇé¿öÉú³É¶à¸ö
*.covexp
£¬È»ºó½«¶à´Î½á¹ûͳºÏÆðÀ´ÐγÉÒ»¸ö±¨¸æ£©£º
covmerge.exe find * -name ‘*.covexp’ –print
‘\
>merged.db
Í˳ö¡£
(5).
ÓÃ
*.db
ÎļþÉú³É
html
Îĵµ¡£
gen_html merged.db
(6).
Éú³ÉµÄÎĵµÔÚ
coverage_html
Ŀ¼ÏÂ
,
ÓÃä¯ÀÀÆ÷²é¿´
index.html
ÀýÈ磺
Files in
directory /home/lboggs/covtool/cov++_test
Percent
Coverged
Instrumented
Lines
Executed
Lines
Directory
Name
40
5
2
/home/lboggs/covtool/cov++_test/test1.c
40
5
2
/home/lboggs/covtool/cov++_test/test2.cxx
#include
<stdio.h>
void
function(int count)
+
{
+
if(count < 10)
-
printf("too low\n");
else
+
printf("ok!\n");
}
+
±íʾ´ËÐÐÔÚ²âÊÔÖб»Ö´ÐУ¬
-
±íʾ´ËÐÐÔÚ²âÊÔÖÐδִÐС£
3.
×¢Òâ
£º
(1).cov++
ĬÈϵÄ
c++
ÎļþÊÇ
*.c,
Èç¹ûÊÇ
*.cpp
µÄ»°Ê¹ÓÃÑ¡Ïî
-EXT:
À
Ïà¹ØÎĵµ£º
Öжϴ¦Àí
ÔÚ 2.4 ÄÚºËºÍ 2.6ÄÚºËÖж¼Ê¹Óà request_irq()
º¯ÊýÀ´×¢²áÖжϷþÎñº¯Êý¡£ÔÚ 2.4
ÄÚºËÖУ¬ÐèÒª°üº¬µÄÍ·ÎļþÊÇ #include <linux/sched.h> £¬2.6 ÄÚºËÖÐÐèÒª°üº¬µÄÍ·ÎļþÔòÊÇ #include
<linux/interrupt.h> ¡£º¯ÊýÔÐÍÈçÏ£º
2.4 ÄÚºË
int
request_irq
(unsigned
int
irq
......
1¡¢´´½¨mysqlÊý¾Ý¿âµÄ¹ÜÀíÓû§
Êý¾Ý¿â°²×°ºÃºó£¬ÎÒÃÇÓ¦¸ÃΪmysqlÊý¾Ý¿â´´½¨Ò»¸ö¹ÜÀíÕʺš£Òª°ÑrootÓû§ÉèÖÃΪ¹ÜÀíÔ±£¬´ËʱÐèÒªÖ´ÐÐÏÂÃæÃüÁ
[root@CDS2 bin]# /usr/bin/mysqladmin -u root password 123456
˵Ã÷£ºÉÏÃæ´´½¨µÄmysqlÊý¾Ý¿â¹ÜÀíԱΪroot£¬ÃÜÂë123456
2¡¢´´½¨Ò»°ãµÄÓû§
¹¤×÷ÖÐÓõ½web·þÎñÆ÷ºÍmysql·þÎñÆ ......
×î½üÔÚ¿´Ò»¸ö¿ªÔ´µÄ´úÂ룬һ¶Î´úÂë¿´Á˺ܾö¼Ã»Óп´¶®£¬GoogleÁËһϣ¬¾¡È»ÊÇlinuxÖÐÁ´±íµÄ±éÀú¡£
±éÀúÁ´±í£º
±éÀúÁ´±ílist_for_eachÊÇÒ»¸öºê£¬Õ¹¿ªÁ˾ÍÊÇÒ»¸öforÑ»·
#define list_for_each(pos, head) \
for (pos = (head)->next; prefetch(pos->next), pos != ( ......
<1> ÈÎÎñ0µÄ¶ÑÕ»ÎÊÌâ
Ò»Ö±²»Ã÷°×schedule.cÀïµÄtask_unionµÄstackºÍuser_stackÊÇʲô¹ØÏµ£¬head.sÀï¾ÍÉèÖÃÁËespÖ¸Ïòuser_stack, ȴһֱûÓÐÓõ½task_union£¬Ö±µ½¿´µ½INIT_TASK²ÅÃ÷°×£¬´Ó½øÈë±£»¤Ä£Ê½µ½Ìø×ª½øÓû§Ì¬¶¼ÊÇÓõÄuser_stackÕâ¸öÕ»£¬¶øÈÎÎñ0µÄtssÖеÄesp0Ö¸Ïòtask_unionµÄstack, Ò²¾ÍÊǵ±ÈÎÎñ0ÔÙÌø×ª½øÄÚºË ......