ניפוי שגיאות – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
אין תקציר עריכה
תגיות: עריכה ממכשיר נייד עריכה דרך האתר הנייד
שורה 1:
'''נִפּוּי שְׁגִיאוֹת,''' '''נִפּוּי תְּקָלִים''' או בקיצור '''ניפוי''' (ב[[אנגלית]]: '''debugging''', '''דִּיבָּגִינְג'''; ב[[עברית]]: '''דִּיבּוּג'''), הוא תהליך שיטתי של מציאתאיתור והפחתת [[באג]]ים (תקלים ) ב[[תוכנה|תוכנת מחשב]] או ב[[חומרה]] אלקטרונית, כדי לגרום להם לפעול כפי שתוכננו. ככל שיששמתקיימים יותר קשרים בין [[תת-מערכות]] או שהמערכת חסרת סדר, כך תהליך ניפוי ה[[שגיאה#תכנות מחשבים|שגיאות]] יהיה קשה יותר.
 
באופן כללי, תהליך ניפוי השגיאות הוא משימה מסורבלת ומעייפת. הקושי בניפוי שגיאות בתוכנה משתנה רבות בין [[שפת תכנות|שפת התכנות]] שבה השתמשו בתיכנות אותה מערכת ובכלים הקיימים לצורך הניפוי כגון [[מנפה שגיאות]]. מנפי שגיאות הם כלים אשר מאפשרים ל[[מתכנת]] לעקוב אחרי ההרצה של תוכנית, לעצור אותה, להתחיל אותה מחדש, להריץ אותה בהילוך איטי, לשנות ערכים ב[[זיכרון מחשב|זיכרון]] ואפילו במקרים מסוימים לחזור אחורה בזמן.
 
באופן עקרוני [[שפה עילית|שפות תכנות עיליות]], כגון [[Java]], הופכות את ניפוי השגיאות לקל יותר, כיוון שהן כוללות אפשרויות כמו [[טיפול בחריגות (תכנות)|טיפול בחריגות]] (exception handling) שמקל על זיהוי הקוד שבגללו התוכנית פועלת בצורה פגומה. עם זאת, במקרה של [[תכנות מונחה אירועים]] שממומש בשפות אלו קיים קושי לעקוב אחרי התהליכים בשל העובדה כי התוכנה מתבצעתפועלת באופן שאיננו רציף, גם [[ריבוי נימים]] בתוכנית או תקשורת בין תוכניות שונות גורם לבעיה דומה. בשפות תכנות אשר נוגעות יותר בחומרה ובהגדרות בסיסיות ([[שפת תכנות Low-level|low level]]), כגון שפות התכנות [[C (שפת תכנות)|C]] או [[שפת סף]], באגים יכולים ליצור בעיות "שקטות" כמו - [[השחתת זיכרון]], ותדיר קשה למצוא היכן הבעיה הראשונית החלה; במקרים כאלה נדרשיםנדרש בדרך כלל כלישימוש בכלי ניפוי מורכבים.
 
לניפוי שגיאות של חומרה אלקטרונית (כגון [[חומרה]] של מחשב), תוכנות בסיסיות שמתייחסות בעיקר לחומרה (כגון [[BIOS]]) או [[קושחה]] (firmware), משתמשים באחד, או יותר, מהכלים הבאים: [[אוסצילוסקופ]], [[מאבחן לוגי]] ו[[אמולטור תוך-מעגלי|אמולטור תוך־מעגלי]] (ICE). אמולטור זה יכול לתפקד בצורה דומה למנפה שגיאות של תוכנה, רק הפעם על תוכנה בסיסית וקושחה. שגיאה ב[[מיקרוקוד]] של [[מעבד]] עלולה לגרום לבאגים קשים במיוחד לגילוי, בין השאר בגללבשל הצורך לבדוק אפשרויות רבות במיוחד והנטייה להתייחס אל המעבד כאל "קופסה שחורה".
 
==ראו גם==