שְׁאֵלָה:
כיצד אוכל לקבוע את כיסוי הקוד בעת התמזגות
mrduclaw
2013-03-31 00:58:10 UTC
view on stackexchange narkive permalink
נניח שארצה להתחיל לטשטש את קורא ה- PDF של Acme Corp. ברצוני לנסות לעקוב אחר מה שמילר עשה על ידי הורדת קבצי PDF מסמכים שפירים ומוטציה שלהם.

מילר החל לצמצם את כמות דגימות ה- PDF שלו למינימום על ידי גיזום דגימות עם כיסוי קוד דומה.

כיצד נעשה שלב ספציפי זה? כלומר, כיצד הוא קבע מהו כיסוי קוד דומה?

אני יכול לדמיין כלי שעוקב אחר ביצוע ומתעד JMP / CALL כדי לקבל גרף ביצוע, ואני מניח שתוכל להבדיל את הגרפים האלה. אבל מה לגבי קוד JIT? האם גרפים אלה לא היו שונים מאוד מכיוון ש- JIT צפוי להיות במיקומים שונים בזיכרון?

שתיים תשובות:
mncoppola
2013-03-31 01:17:45 UTC
view on stackexchange narkive permalink

למרות שהוא משולב בכבדות עם GCC, פרויקט gcov פופולרי ככלי כיסוי קוד לינוקס. עם זאת, זה דורש להרכיב את התוכנית שלך עם הדגלים -fprofile-arc -ftest-coverage , אשר לא יכול להיות אפשרות אם מכוונים לתוכנת קוד סגור. מידע נוסף ניתן למצוא כאן: http://gcc.gnu.org/onlinedocs/gcc/Gcov.html

זו הצעה נהדרת, אבל קיוויתי להצעות לתוכנות קוד סגור.
0xea
2013-03-31 01:50:00 UTC
view on stackexchange narkive permalink

לא בטוח איך זה מסתדר מול יישום עם קוד JIT מקומפל, אבל לאפרסק יש כלי minset לייצור קבוצה מינימלית של קבצים עם כיסוי קוד הגבוה ביותר:

כלי זה יריץ כל קובץ לדוגמה באמצעות תוכנית יעד ויקבע כיסוי קוד. לאחר מכן הוא ימצא את מספר הקבצים הנמוך ביותר הדרוש כדי לכסות את הקוד המרבי. זו תהיה ערכת הקבצים המינימלית שיש להשתמש בה בעת טשטוש.

אך ככל שאני יכול לראות היא משתמשת בשיטה שהצעת, תוך פיקוח על התאמות של כל הבלוקים הבסיסיים של היישום. היא משתמשת במכונת פינטה בכדי לעשות זאת.



שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...