זהו הפקודה lcov שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
lcov - חזית GCOV גרפית
תַקצִיר
lcov -c|--לִלְכּוֹד
[-d|--מַדרִיך בספרייה] [-k|---kernel-directory בספרייה]
[-o|--קובץ פלט קובץ עקבות] [-t|--שם המבחן שם המבחן]
[-b|--ספריית הבסיס בספרייה] [-i|--התחלתי] [--gcov-כלי כלי]
[--בדיקת סכום] [--ללא בדיקה] [--ללא רקורסיה] [-f|--לעקוב אחר]
[--compat-libtool] [--no-compat-libtool] [--התעלם משגיאות שגיאות]
[--לארוז חבילה] [--מהחבילה חבילה] [-q|--שֶׁקֶט]
[--ללא סמנים] [--חיצוני] [--לא-חיצוני]
[--config-file קובץ config] [--rc מילות מפתח=ערך]
[--compat מצב=מופעל|כבוי|אוטומטי]
lcov -z|--אפס מונים
[-d|--מַדרִיך בספרייה] [--ללא רקורסיה] [-f|--לעקוב אחר]
[-q|--שֶׁקֶט]
lcov -l|--רשימה קובץ עקבות
[-q|--שֶׁקֶט] [--רשימה-מלא-נתיב] [--לא-רשימה-מלא-נתיב]
[--config-file קובץ config] [--rc מילות מפתח=ערך]
lcov -a|--add-tracefile קובץ עקבות
[-o|--קובץ פלט קובץ עקבות] [--בדיקת סכום] [--ללא בדיקה]
[-q|--שֶׁקֶט] [--config-file קובץ config] [--rc מילות מפתח=ערך]
lcov -e|--לחלץ קובץ עקבות דפוס
[-o|--קובץ פלט קובץ עקבות] [--בדיקת סכום] [--ללא בדיקה]
[-q|--שֶׁקֶט] [--config-file קובץ config] [--rc מילות מפתח=ערך]
lcov -r|--לְהַסִיר קובץ עקבות דפוס
[-o|--קובץ פלט קובץ עקבות] [--בדיקת סכום] [--ללא בדיקה]
[-q|--שֶׁקֶט] [--config-file קובץ config] [--rc מילות מפתח=ערך]
lcov --הבדל קובץ עקבות הבדל
[-o|--קובץ פלט קובץ עקבות] [--בדיקת סכום] [--ללא בדיקה]
[--convert-filenames] [--לְהִתְפַּשֵׁט עומק] [--נָתִיב נתיב] [-q|--שֶׁקֶט]
[--config-file קובץ config] [--rc מילות מפתח=ערך]
lcov --סיכום קובץ עקבות
[-q|--שֶׁקֶט]
lcov [-h|- עזרה] [-v|--גִרְסָה]
תיאור
lcov הוא חזית גרפית לכלי בדיקת הכיסוי של GCC gcov. זה אוסף קו,
נתוני כיסוי פונקציות וענפים עבור קובצי מקור מרובים ויוצר דפי HTML
המכיל את קוד המקור עם ביאור עם מידע כיסוי. זה גם מוסיף סקירה כללית
דפים לניווט קל בתוך מבנה הקובץ.
השתמש lcov לאסוף נתוני כיסוי ו genhtml ליצירת דפי HTML. נתוני כיסוי יכולים
או שייאספו מקרנל לינוקס הפועל כעת או ממרחב משתמש
יישום. לשם כך, עליך לבצע את שלבי ההכנה הבאים:
עבור כיסוי ליבת לינוקס:
עקוב אחר הוראות ההגדרה עבור תשתית gcov-kernel:
http://ltp.sourceforge.net/coverage/gcov.php
לכיסוי יישומי שטח משתמש:
הידור האפליקציה עם GCC באמצעות האפשרויות "-fprofile-arcs" ו
"הכיסוי הכי גבוה".
שים לב שדף אדם זה מתייחס לפורמט הפלט של lcov בתור "קובץ מידע" או
"tracefile" וכי הפלט של GCOV נקרא ".da file".
כמו כן, שימו לב כי בעת הדפסת אחוזי הדפסה, 0% ו-100% מודפסים רק כאשר הערכים הם
בדיוק 0% ו-100% בהתאמה. ערכים אחרים שיעוגלו בדרך כלל ל-0%
או 100% מודפסים במקום זאת כערך הלא-גבול הקרוב ביותר. התנהגות זו היא בהתאם
עם זה של gcov(1) כלי.
אפשרויות
-a קובץ עקבות
--add-tracefile קובץ עקבות
הוסף תוכן של קובץ עקבות.
ציין מספר קובצי מעקב באמצעות המתג -a לשילוב נתוני הכיסוי
הכלולים בקבצים אלה על ידי הוספת ספירות ביצוע עבור בדיקת התאמה ו
שילובי שמות קבצים.
התוצאה של פעולת ההוספה תיכתב ל-stdout או ל-tracefile
מצוין עם -o.
ניתן לציין רק אחד מ-z, -c, -a, -e, -r, -l, --diff או --summary ב-
הזמן.
-b בספרייה
--ספריית הבסיס בספרייה
השתמש בספרייה כספריית בסיס עבור נתיבים יחסיים.
השתמש באפשרות זו כדי לציין את ספריית הבסיס של סביבת בנייה כאשר lcov
מייצר הודעות שגיאה כמו:
שגיאה: לא ניתן היה לקרוא את קובץ המקור
/home/user/project/subdir1/subdir2/subdir1/subdir2/file.c
בדוגמה זו, השתמש ב-/home/user/project בתור ספריית בסיס.
אפשרות זו נדרשת בעת שימוש ב-lcov בפרויקטים שנבנו עם libtool או דומה
לבנות סביבות שעובדות עם ספריית בסיס, כלומר סביבות, שבהן
ספריית העבודה הנוכחית בעת הפעלת המהדר אינה אותה ספרייה
שבו נמצא קובץ קוד המקור.
שים לב שהאפשרות הזו לא תעבוד בסביבות שבהן מספר ספריות בסיס
משומשים. במקרה זה השתמש בהגדרת קובץ התצורה geninfo_auto_base=1 (ראה
lcovrc(5)).
-c
--לִלְכּוֹד
לכידת נתוני כיסוי.
כברירת מחדל לוכדת את ספירות הביצוע הנוכחיות של הליבה וכותבת את המתקבלות
נתוני כיסוי לפלט הסטנדרטי. השתמש באפשרות --directory כדי ללכוד ספירות
עבור תוכנית מרחב משתמש.
התוצאה של פעולת הלכידה תיכתב ל-stdout או ל-tracefile
מצוין עם -o.
ניתן לציין רק אחד מ-z, -c, -a, -e, -r, -l, --diff או --summary ב-
הזמן.
--בדיקת סכום
--ללא בדיקה
ציין אם ליצור נתוני בדיקה בעת כתיבת קבצי מעקב.
השתמש ב--checksum כדי לאפשר יצירת סכום בדיקה או ב--no-checksum כדי להשבית אותו.
יצירת סכום צ'ק הוא נכה כברירת מחדל.
כאשר יצירת סכום בדיקה מופעלת, יווצר סכום בדיקה עבור כל מקור
שורת קוד ומאוחסנת יחד עם נתוני הכיסוי. סכום בדיקה זה ישמש
למנוע ניסיונות לשלב נתוני כיסוי מגרסאות קוד מקור שונות.
אם אינך עובד עם גרסאות קוד מקור שונות, השבת את האפשרות הזו כדי להאיץ
להגביר את עיבוד נתוני הכיסוי ולהקטין את גודל קבצי העקבות.
--compat מצב=ערך[,מצב=ערך,...]
הגדר מצב תאימות.
השתמש ב--compat כדי לציין ש-lcov צריך לאפשר מצב תאימות אחד או יותר
בעת לכידת נתוני כיסוי. אתה יכול לספק רשימה מופרדת בפסיקים של mode=value
זוגות כדי לציין את הערכים עבור מצבים מרובים.
תקף ערכים הם:
on
הפעל מצב תאימות.
כבוי
השבת את מצב התאימות.
המכונית
החל זיהוי אוטומטי כדי לקבוע אם נדרש מצב תאימות. הערה
שזיהוי אוטומטי אינו זמין עבור כל מצבי התאימות.
אם לא צוין ערך, ההנחה 'מופעל' היא ערך ברירת המחדל.
תקף מצבי הם:
libtool
הפעל מצב זה אם אתה לוכד נתוני כיסוי עבור פרויקט שהיה
נבנה באמצעות מנגנון libtool. ראה גם --compat-libtool.
ערך ברירת המחדל עבור הגדרה זו הוא 'מופעל'.
פטיש
הפעל מצב זה אם אתה לוכד נתוני כיסוי עבור פרויקט שהיה
נבנה באמצעות גרסה של GCC 3.3 המכילה שינוי (תיקון פטיש)
של גרסאות GCC מאוחרות יותר. אתה יכול לזהות GCC 3.3 שונה על ידי סימון ה-
בניית ספרייה של הפרויקט שלך עבור קבצים המסתיימים בסיומת '.bbg'.
גרסאות ללא שינוי של GCC 3.3 שמות קבצים אלה '.bb'.
ערך ברירת המחדל עבור הגדרה זו הוא 'אוטומטי'.
split_crc
הפעל מצב זה אם אתה לוכד נתוני כיסוי עבור פרויקט שהיה
נבנה באמצעות גרסה של GCC 4.6 המכילה שינוי (פיצול
סכומי בדיקת פונקציות) של גרסאות GCC מאוחרות יותר. הודעות שגיאה אופייניות כאשר
ההפעלה של LCOV על נתוני כיסוי המיוצרים על ידי גרסאות GCC כאלה אינן מחוץ
memory' ו-'הגיע לסוף בלתי צפוי של הקובץ'.
ערך ברירת המחדל עבור הגדרה זו הוא 'אוטומטי'
--compat-libtool
--no-compat-libtool
ציין אם להפעיל את מצב תאימות libtool.
השתמש ב--compat-libtool כדי להפעיל מצב תאימות של libtool או ב--no-compat-libtool כדי
להשבית אותו. מצב התאימות של libtool הוא מופעל כברירת מחדל.
כאשר מצב תאימות libtool מופעל, lcov יניח שקוד המקור
המתייחס לקובץ .da שנמצא בספרייה בשם ".libs" ניתן למצוא בו
ספריית הורים.
אם יש לך ספריות בשם ".libs" בסביבת הבנייה שלך אבל אל תשתמש
libtool, השבת אפשרות זו כדי למנוע בעיות בעת לכידת נתוני כיסוי.
--config-file קובץ config
ציין קובץ תצורה לשימוש.
כאשר אפשרות זו מצוינת, לא קובץ התצורה כלל המערכת
/etc/lcovrc, ולא קובץ התצורה לכל משתמש ~/.lcovrc נקרא.
אפשרות זו עשויה להיות שימושית כאשר יש צורך להפעיל מספר מופעים של lcov
עם אפשרויות שונות של קבצי תצורה במקביל.
--convert-filenames
המר שמות קבצים בעת החלת diff.
השתמש באפשרות זו יחד עם --diff כדי לשנות את שמות הקבצים של נתונים מעובדים
קובע בהתאם לנתונים שסיפק ה-diff.
--הבדל קובץ עקבות difffile
המרת נתוני כיסוי ב קובץ עקבות באמצעות קובץ קוד המקור difffile.
השתמש באפשרות זו אם ברצונך למזג נתוני כיסוי מקוד מקור אחר
רמות של תוכנית, למשל כאשר יש לך נתונים שנלקחו מגרסה ישנה יותר ואתה רוצה
לשלב אותו עם נתונים מגרסה עדכנית יותר. lcov ינסה למפות את המקור
קווי קוד בין גרסאות אלה והתאמת נתוני הכיסוי בהתאמה.
difffile צריך להיות בפורמט מאוחד, כלומר יש ליצור אותו באמצעות ה-"-u"
אופציה של הבדל כלי.
שימו לב כי שורות שאינן קיימות בגרסה הישנה לא ייספרו כ
מכשור, לכן קבצי מעקב הנובעים מפעולה זו לא אמורים להיות
פורש בנפרד אך יחד עם קבצי עקבות אחרים שנלקחו מהחדש יותר
גִרְסָה. זכור גם כי יש להשתמש בנתוני כיסוי שהומרו רק עבור
מטרות סקירה מכיוון שהתהליך עצמו מציג אובדן דיוק.
התוצאה של פעולת ה-diff תיכתב ל-stdout או ל-tracefile
מצוין עם -o.
ניתן לציין רק אחד מ-z, -c, -a, -e, -r, -l, --diff או --summary ב-
הזמן.
-d בספרייה
--מַדרִיך בספרייה
השתמש בקבצי .da ב בספרייה במקום גרעין.
אם ברצונך לעבוד על נתוני כיסוי עבור תוכנית מרחב משתמש, השתמש באפשרות זו כדי
ציין את המיקום שבו התוכנית הידור (שם קבצי המונה
המסתיים ב-.da יאוחסן).
שים לב שאתה יכול לציין אפשרות זו יותר מפעם אחת.
--חיצוני
--לא-חיצוני
ציין אם ללכוד נתוני כיסוי עבור קובצי מקור חיצוניים.
קבצי מקור חיצוניים הם קבצים שאינם נמצאים באחת מהספריות
שצוין על ידי --directory או --base-directory. השתמש ב--external כדי לכלול חיצוני
קבצי מקור תוך לכידת נתוני כיסוי או --no-external כדי להתעלם מנתונים אלה.
נתונים עבור קבצי מקור חיצוניים הם כלול כברירת מחדל.
-e קובץ עקבות דפוס
--לחלץ קובץ עקבות דפוס
חלץ נתונים מ קובץ עקבות.
השתמש במתג זה אם ברצונך לחלץ נתוני כיסוי רק עבור קבוצה מסוימת של
קבצים מתוך קובץ עקבות. פרמטרים נוספים של שורת הפקודה יתפרשו כ
דפוסי תווים כלליים של מעטפת (שים לב שייתכן שיהיה צורך להמלט אותם בהתאם
למנוע מהקליפה להרחיב אותם תחילה). כל הזנת קובץ ב קובץ עקבות אשר
תואם לפחות אחד מהדפוסים האלה יחולץ.
התוצאה של פעולת החילוץ תיכתב ל-stdout או ל-tracefile
מצוין עם -o.
ניתן לציין רק אחד מ-z, -c, -a, -e, -r, -l, --diff או --summary ב-
הזמן.
-f
--לעקוב אחר
עקוב אחר קישורים בעת חיפוש קבצי .da.
--מהחבילה חבילה
השתמש בקבצי .da ב חבילה במקום ליבה או ספרייה.
השתמש באפשרות זו אם יש לך מכונות נפרדות לבנייה ולבדיקה ואתה רוצה
בצע את יצירת קובץ ה-.info במחשב ה-build. ראה --to-package למידע נוסף
מידע.
--gcov-כלי כלי
ציין את המיקום של הכלי gcov.
-h
- עזרה
הדפס טקסט עזרה קצר ואז צא.
--התעלם משגיאות שגיאות
ציין רשימה של שגיאות שלאחריהן להמשיך בעיבוד.
השתמש באפשרות זו כדי לציין רשימה של מחלקה אחת או יותר של שגיאות שלאחריהן LCOV
צריך להמשיך בעיבוד במקום להפסיק.
שגיאות יכולה להיות רשימה מופרדת בפסיקים של מילות המפתח הבאות:
gcov: הכלי gcov החזיר עם קוד החזרה שאינו אפס.
מקור: לא ניתן למצוא את קובץ קוד המקור של ערכת נתונים.
גרָף: קובץ הגרף לא נמצא או שהוא פגום.
-i
--התחלתי
לכידת נתוני אפס כיסוי ראשוניים.
הפעל את LCOV עם -c ואפשרות זו על הספריות המכילות .bb, .bbg או .gcno
קבצים לפני הפעלת כל מקרה בדיקה. התוצאה היא קובץ נתוני כיסוי "בסיסי".
שמכיל אפס כיסוי עבור כל קו מכשיר. שלב את קובץ הנתונים הזה
(באמצעות LCOV -a) עם קבצי נתוני כיסוי שנלכדו לאחר הפעלת מבחן כדי להבטיח זאת
האחוז מסך השורות המכוסות נכון גם כאשר לא כל קוד המקור
קבצים נטענו במהלך הבדיקה.
הליך מומלץ בעת לכידת נתונים עבור מקרה בדיקה:
1. צור קובץ נתוני כיסוי בסיסי
# lcov -c -i -d appdir -o app_base.info
2. לבצע בדיקה
# appdir/test
3. צור קובץ נתוני כיסוי בדיקה
# lcov -c -d appdir -o app_test.info
4. לשלב נתוני כיסוי בסיס ובדיקה
# lcov -a app_base.info -a app_test.info -o app_total.info
-k ספריית משנה
---kernel-directory ספריית משנה
לכידת נתוני כיסוי ליבה רק מ ספריית משנה.
השתמש באפשרות זו אם אינך רוצה לקבל נתוני כיסוי עבור כל הליבה, אבל
רק עבור ספריות משנה ספציפיות. ניתן לציין אפשרות זו יותר מפעם אחת.
שים לב שייתכן שתצטרך לציין את הנתיב המלא אל ספריית המשנה של הליבה
בהתאם לגרסה של תמיכת ה-gcov הליבה.
-l קובץ עקבות
--רשימה קובץ עקבות
רשום את התוכן של קובץ עקבות.
ניתן לציין רק אחד מ-z, -c, -a, -e, -r, -l, --diff או --summary ב-
הזמן.
--רשימה-מלא-נתיב
--לא-רשימה-מלא-נתיב
ציין אם להציג נתיבים מלאים במהלך פעולת הרשימה.
השתמש ב--list-full-path כדי להציג נתיבים מלאים במהלך פעולת רשימה או
--no-list-full-path להצגת נתיבים מקוצרים. שבילים הם מקוצר כברירת מחדל.
--ללא סמנים
השתמש באפשרות זו אם ברצונך לקבל נתוני כיסוי ללא קשר להחרגה
סמנים בקובץ קוד המקור. לִרְאוֹת geninfo (1) לפרטים על סמני אי הכללה.
--ללא רקורסיה
השתמש באפשרות זו אם ברצונך לקבל נתוני כיסוי עבור הספרייה שצוינה בלבד
ללא עיבוד ספריות משנה.
-o קובץ עקבות
--קובץ פלט קובץ עקבות
כתוב נתונים ל קובץ עקבות במקום stdout.
ציין "-" כשם קובץ כדי להשתמש בפלט הסטנדרטי.
לפי המוסכמה, קבצי נתוני כיסוי שנוצרו על ידי LCOV נקראים "קבצי מעקב" ו
צריכה להיות סיומת שם הקובץ ".info".
--נָתִיב נתיב
הסר נתיב משמות קבצים בעת החלת diff.
השתמש באפשרות זו יחד עם --diff כדי לומר ל-lcov להתעלם מהמפורט
רכיב נתיב ראשוני בעת התאמה בין שמות קבצים tracefile ו-diff.
-q
--שֶׁקֶט
אל תדפיס הודעות התקדמות.
אפשרות זו משתמעת כאשר לא צוין שם קובץ פלט כדי למנוע התקדמות
הודעות להתעסק עם נתוני כיסוי שגם הם מודפסים לפלט הסטנדרטי.
--rc מילות מפתח=ערך
עוקף הוראת תצורה.
השתמש באפשרות זו כדי לציין א מילות מפתח=ערך הצהרה אשר עוקפת את
הצהרת התצורה המתאימה בקובץ התצורה של lcovrc. אתה יכול
ציין אפשרות זו יותר מפעם אחת כדי לעקוף הצהרות תצורה מרובות.
לִרְאוֹת lcovrc(5) לרשימה של מילות מפתח זמינות ומשמעותן.
-r קובץ עקבות דפוס
--לְהַסִיר קובץ עקבות דפוס
הסר נתונים מ קובץ עקבות.
השתמש במתג זה אם ברצונך להסיר נתוני כיסוי עבור קבוצה מסוימת של קבצים
מתוך קובץ עקבות. פרמטרים נוספים של שורת הפקודה יתפרשו כ- shell
דפוסי תווים כלליים (שים לב שייתכן שיהיה צורך להמלט אותם בהתאם כדי למנוע את
מעטפת מלהרחיב אותם תחילה). כל הזנת קובץ ב קובץ עקבות אשר מתאים ב
לפחות אחד מהדפוסים האלה יוסר.
התוצאה של פעולת ההסרה תיכתב ל-stdout או ל-tracefile
מצוין עם -o.
ניתן לציין רק אחד מ-z, -c, -a, -e, -r, -l, --diff או --summary ב-
הזמן.
--לְהִתְפַּשֵׁט עומק
רצועת רכיבי נתיב בעת החלת הפרש.
השתמש באפשרות זו יחד עם --diff כדי לומר ל-lcov להתעלם מהמספר שצוין
של ספריות ראשוניות בעת התאמת שמות קבצים tracefile ו-diff.
--סיכום קובץ עקבות
הצג מידע סיכום כיסוי עבור קובץ העקבות שצוין.
שים לב שאתה יכול לציין אפשרות זו יותר מפעם אחת.
ניתן לציין רק אחד מ-z, -c, -a, -e, -r, -l, --diff או --summary ב-
הזמן.
-t שם המבחן
--שם המבחן שם המבחן
ציין את שם הבדיקה שיש לאחסן בקובץ העקבות.
שם זה מזהה מערך נתוני כיסוי כאשר יותר מקבוצת נתונים אחד מתמזגים לתוך
קובץ עקבות משולב (ראה אפשרות -א).
שמות מבחנים חוקיים יכולים להיות מורכבים מאותיות, ספרות עשרוניות ומקו תחתון
אופי ("_").
--לארוז חבילה
אחסן קבצי .da לעיבוד מאוחר יותר.
השתמש באפשרות זו אם יש לך מכונות נפרדות לבנייה ולבדיקה ואתה רוצה
בצע את יצירת קובץ ה-.info במחשב ה-build. כדי לעשות זאת, עקוב אחר אלה
צעדים:
במכונת הבדיקה:
- הפעל את הבדיקה
- הפעל את lcov -c [-d directory] --to-package פילה
- עותק פילה למכונת הבנייה
על מכונת הבנייה:
- הפעל lcov -c --from-package פילה [-o ואפשרויות אחרות]
זה עובד הן עבור נתוני כיסוי הליבה והן על שטח המשתמש. שים לב שאולי יש לך
כדי לציין את הנתיב לספריית ה-build באמצעות -b עם --to-package או
--מ-חבילה. שימו לב גם שיש להמיר את נתוני החבילה לקובץ .info
לפני הידור מחדש של התוכנית או שהיא תהפוך לבלתי חוקית.
-v
--גִרְסָה
הדפס את מספר הגרסה ולאחר מכן צא.
-z
--אפס מונים
אפס את כל ספירות הביצוע לאפס.
כברירת מחדל מנסה לאפס את ספירות הביצוע של הליבה. השתמש באפשרות --directory כדי
אפס את כל המונים של תוכנית שטח משתמש.
ניתן לציין רק אחד מ-z, -c, -a, -e, -r, -l, --diff או --summary ב-
הזמן.
השתמש ב-lcov באינטרנט באמצעות שירותי onworks.net