بایگانی برچسب‌ها : دیباگ

اشکال زدا Debugger

اشکال زدا یا Debugger چیست؟

اشکال زدا یا دیباگر (Debugger) یک نرم‌افزار رایانه‌ای است که به منظور تست و اشکال زدایی نرم‌افزارهای دیگر مورد استفاده قرار می‌گیرد.

با کمک این ابزار، توسعه دهنده می‌تواند یک برنامه را گام به گام (Step by Step) اجرا نماید و یا با کمک نقاط وقفه (breakpoint) یا هنگام وقوع رخدادی معین، اجرای برنامه را متوقف نموده و وضعیت کنونی متغیرها را مورد بررسی و پایش قرار دهد. علاوه بر این بسیاری از دیباگرها حین اجرای برنامه امکان تغییر وضعیت برنامه، مقدار متغیرها و حتی تغییر مکان کنونی اجرا را فراهم می‌آورند و در اغلب اوقات می‌توانند سیر طبیعی اجرا را با تغییرات اعمال شده ادامه دهند بدون آنکه نیازی به خروج از دیباگر یا اجرای مجدد برنامه وجود داشته باشد.

وقتی برنامه‌ی مورد اشکال زدایی در وضعیتی قرار می‌گیرد که به دلایلی (از جمله وجود باگ) قادر به ادامه اجرای نرمال نمی‌باشد یک اشکال زدای رایج می‌تواند مکانی در سورس کد که باعث بروز مشکل شده است را به توسعه دهنده نمایش دهد. طبیعتا در کنار مزیت‌های موجود، اجرای برنامه با استفاده چنین ابزارهایی نسبت به اجرای مستقیم آن از سرعت کمتری برخوردار خواهد بود. هرچند برخی از دیباگرها برای صرفه‌جویی در مصرف منابع از واسط های کاربری مبتنی بر خط فرمان بهره می‌برند اما اغلب توسعه‌دهندگان، اشکال زدایی از طریق یک واسط کاربری گرافیکی را ترجیح می‌دهند.

Microsoft Visual Studio Debugger از اشکال زداهای رایج و قدرتمندی است که به صورت پیش‌فرض همراه با مایکروسافت ویژوال استادیو قابل استفاده می‌باشد. در نسخه‌های جدید این اشکال زدا، افزون بر قابلیت‌های معمول، امکان اشکال زدایی از راه دور و ایجاد نقاط وقفه پیشرفته (مانند نقاط وقفه شرطی) فراهم شده است. لازم به ذکر است کارشناسی که فرایند اشکال زدایی یک نرم‌افزار رایانه‌ای را بر عهده دارد نیز Debugger نامیده می‌شود.

اشکال زدایی Debugging

اشکال زدایی یا Debugging چیست؟

اشکال زدایی یا عیب زدایی (Debugging) در دانش تخصصی رایانه به فرایندی گفته می‌شود که طی آن باگ‌ها (یا عیوبی) که مانع از عملکرد صحیح یک نرم‌افزار رایانه‌ای یا سیستم می‌شوند را شناسایی کرده و درصدد برطرف کردن آن برمی‌آیند.

اشکال‌زدایی در واقع یکی از مراحل فرایند توسعه‌ی نرم‌افزار (Software Development) به شمار می‌رود و می‌تواند شامل برطرف کردن خطاهای ساده تا نظارت روی عملکرد سیستم، بررسی وضعیت مموری هنگام بروز یک خطا و … شود.

توسعه دهندگان به منظور یافتن و رفع آسانتر این اشکالات معمولا از ابزارهای نرم‌افزاری خاصی به نام اشکال زدا (Debugger) استفاده می‌کنند. نظارت روی نحوه اجرای برنامه، توقف و ادامه اجرای آن، ایجاد نقاط وقفه، پایش مقادیر متغیرها و حتی در بسیاری از موارد امکان تغییر مقدار آن‌ها حین اجرای برنامه و … از جمله قابلیت‌هایی است که در محیط‌های اشکال زدایی به کمک توسعه دهندگان نرم‌افزارها می‌آید. علاوه بر این اکثر زبان‌های برنامه‌نویسی سطح بالای امروزی، با فراهم آوردن ساختارهایی برای شناسایی حالات استثنایی، موجب ساده‌تر شدن فرایند اشکال‌زدایی و تشخیص نقاط اصلی در بروز رفتارهای نامناسب برنامه‌ها شده‌اند.

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