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

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