اشکال زدایی Debugging
اشکال زدایی یا Debugging چیست؟
اشکال زدایی یا عیب زدایی (Debugging) در دانش تخصصی رایانه به فرایندی گفته میشود که طی آن باگها (یا عیوبی) که مانع از عملکرد صحیح یک نرمافزار رایانهای یا سیستم میشوند را شناسایی کرده و درصدد برطرف کردن آن برمیآیند.
اشکالزدایی در واقع یکی از مراحل فرایند توسعهی نرمافزار (Software Development) به شمار میرود و میتواند شامل برطرف کردن خطاهای ساده تا نظارت روی عملکرد سیستم، بررسی وضعیت مموری هنگام بروز یک خطا و … شود.
توسعه دهندگان به منظور یافتن و رفع آسانتر این اشکالات معمولا از ابزارهای نرمافزاری خاصی به نام اشکال یاب (Debugger) استفاده میکنند. نظارت روی نحوه اجرای برنامه، توقف و ادامه اجرای آن، ایجاد نقاط وقفه، پایش مقادیر متغیرها و حتی در بسیاری از موارد امکان تغییر مقدار آنها حین اجرای برنامه و … از جمله قابلیتهایی است که در محیطهای اشکال زدایی به کمک توسعه دهندگان نرمافزارها میآید. علاوه بر این اکثر زبانهای برنامهنویسی سطح بالای امروزی، با فراهم آوردن ساختارهایی برای شناسایی حالات استثنایی، موجب سادهتر شدن فرایند اشکالزدایی و تشخیص نقاط اصلی در بروز رفتارهای نامناسب برنامهها شدهاند.
برای یافتن عیوب یک نرم افزار، علاوه بر روش تعاملی (Interactive Debugging) که با استفاده از اغلب Debugger ها قابل انجام است روشهای رایج دیگری از جمله اشکال زدایی مبتنی بر دستورات Print (یا Print Debugging) نیز وجود دارد که با کمک مقادیر ثبت شده، توسعه دهنده را از سیر اجرای برنامه با خبر میسازد. اشکال زدایی از راه دور (یا Remote Debugging که در آن نرمافزاری که قرار است مورد اشکالزدایی واقع شود روی سیستمی غیر از سیستم اشکال زدا قرار دارد) و همچنین اشکال زدایی پس از وقوع مشکل (یا Post-mortem Debugging که از طریق روشهای ردیابی و تحلیل وضعیت حافظه هنگام وقوع مشکل میسر میشود) از دیگر روشهای دیباگینگ به شمار میروند. گفتنی است برای اشکال زدایی سختافزارها نیز ابزارهای مخصوص و متنوعی طراحی شده است.