دیباگ کردن کد در سی شارپ – ابزارها و تکنیک ها به زبان ساده

۴۵۱
۱۴۰۴/۰۵/۸
۱۵ دقیقه
PDF
آموزش متنی جامع
امکان دانلود نسخه PDF

دیباگ کردن به معنی پیدا کردن و رفع اشکالات و خطاهای موجود در کد است. برنامه‌نویسان در فرایند توسعه ممکن است با خطاهای مختلفی روبرو شوند که عملکرد صحیح برنامه را با اختلال مواجه کنند. یکی از راه حل‌های برنامه‌نویسان برای برطرف کردن خطاهای موجود در برنامه دیباگ کردن کد است. ابزارهای مختلفی برای دیباگ کردن کد در سی شارپ وجود دارند که به توسعه‌دهندگان امکان می‌دهند تا خطاهای موجود در برنامه را سریع‌تر شناسایی و برطرف کنند. از جمله مهم‌ترین ابزارهای دیباگ کردن کد در سی شارپ می‌توان به دیباگر داخلی ویژوال استودیو کد اشاره کرد که امکاناتی همچون انواع Breakpoint را در اختیار برنامه‌نویسان قرار می‌دهد تا بتوانند وضعیت اجرای برنامه‌ خود را مشاهده کنند.

آنچه در این مطلب می‌آموزید:
  • می‌آموزید دیباگ کردن کد چیست و چرا یکی از مهارت‌های کلیدی در برنامه‌نویسی محسوب می‌شود.
  • با اهمیت دیباگ در بهبود کیفیت کد و کاهش خطاهای اجرایی آشنا خواهید شد.
  • ابزارها و افزونه‌های متنوع دیباگ کد در سی‌شارپ را می‌شناسید.
  • یاد می‌گیرید چگونه با افزونه C# در VS Code محیطی مناسب برای دیباگ فراهم کنید.
  • نحوه دیباگ کردن کد در سی‌شارپ با ویژوال استودیو کد را می‌آموزید.
  • با مفهوم Breakpoint آشنا می‌شوید و می‌آموزید چگونه آن را ایجاد، ویرایش یا حذف کنید.
دیباگ کردن کد در سی شارپ – ابزارها و تکنیک ها به زبان سادهدیباگ کردن کد در سی شارپ – ابزارها و تکنیک ها به زبان ساده
فهرست مطالب این نوشته
997696

بر همین اساس در این مطلب از مجله فرادرس نحوه دیباگ کردن کد در سی شارپ با استفاده از ابزارهای مختلف آموزش داده شده است. با مطالعه این مطلب ضمن آشنایی با شیوه‌های مختلف دیباگ کردن کدهای سی شارپ با تکنیک‌های دیباگ کردن کد نیز آشنا خواهید شد. در ادامه نیز مفهوم Breakpoint و انواع آن به صورت کامل مورد بررسی قرار خواهد گرفت.

دیباگ کردن کد چیست؟

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

برای درک بهتر مفهوم دیباگ کردن کد تصور کنید برنامه‌ای نوشته‌اید که درست کار نمی‌کند. وقتی برنامه‌ای درست کار نمی‌کند یعنی یکی از حالت‌های زیر وجود دارد.

  • اصلاً اجرا نمی‌شود.
  • اجرا می‌شود ولی نتیجه اشتباهی در خروجی نشان می‌دهد.
  • در حین اجرا دچار مشکل شده و متوقف می‌شود.
  • رفتار غیرقابل پیش‌بینی از خود نشان می‌دهد.

در این شرایط دیباگ کردن کد همانند یک کارآگاه به صورت خط‌به‌خط تمام کدهای برنامه را بررسی می‌کند تا علت بروز خطا را پیدا کند. برای شروع، پیشنهاد می‌کنیم با مشاهده فیلم آموزش ویژوال استودیو برای خطایابی کدهای سی‌شارپ از فرادرس، با اصول این فرآیند آشنایی پیدا کنید.

برنامه نویس در حال کار با لپ تاپ و دیباگ کردن کد در سی شارپ است

اهمیت دیباگ کردن کد در برنامه نویسی چیست؟

دیباگ کردن کد یعنی پیدا کردن دلیل بروز خطا در کد، تصحیح خطای موجود و اطمینان از این که برنامه درست کار می‌کند. تقریباً تمامی برنامه‌ها در نسخه اولیه خود خطاهایی دارند که این خطاها باید توسط سازنده برنامه برطرف شوند. از جمله دلایل اهمیت دیباگ کردن کد در برنامه نویسی به موارد زیر می‌توان اشاره کرد.

  • پیدا کردن خطاها
  • بهبود کیفیت برنامه
  • صرفه‌جویی در زمان و هزینه
  • افزایش مهارت برنامه‌نویس
  • افزایش امنیت برنامه
  • پیشگیری از بروز خطا در نسخه‌ نهایی برنامه

در واقع، دیباگ کردن موجب برطرف شدن خطاهای موجود در کد می‌شود و همچنین درک برنامه‌نویس نسبت به فرایند اجرای کدها را نیز افزایش می‌دهد.

اهمیت دیباگ کردن کد در سی شارپ

آشنایی با ابزارهای دیباگ کردن کد در سی شارپ

خوشبختانه امروزه محیط‌های توسعه و ویرایشگرهای کد ابزارهای قدرتمندی برای یافتن و رفع خطاها در اختیار توسعه‌دهندگان قرار می‌دهند. ابزارهای دیباگ کردن کد در سی شارپ در محیط توسعه اصلی سی شارپ یعنی «ویژوال استودیو» (Visual Studio) قرار دارند.

«دیباگر داخلی ویژوال استودیو» (Visual Studio Debugger) به عنوان اصلی‌ترین ابزار دیباگ کردن کد در سی شارپ شناخته می‌شود که امکانات متعددی را در اختیار برنامه‌نویسان سی شارپ قرار می‌دهد. علاه بر این، ابزارهای دیگری نیز برای دیباگ کردن کد در سی شارپ وجود دارند که در ادامه آورده شده‌اند.

  • افزونه سی شارپ در VS Code
  • dnSpy
  • dotnet-trace و dotnet-dump
  • LINQPad

در ادامه به بررسی هر کدام از ابزارهای ارائه شده در بالا خواهیم پرداخت.

افزونه سی شارپ در VS Code

«ویژوال استودیو کد» (Visual Studio Code | VS Code) یک ویرایشگر کد سبک و در عین حال قدرتمند است که به توسعه‌دهندگان سی شارپ امکان می‌دهد تا امکاناتی شبیه به آنچه در محیط توسعه ویژوال استودیو وجود دارد را در یک محیط سبک‌تر در اختیار داشته باشند. با نصب افزونه سی شارپ در این ویرایشگر توسعه‌دهندگان می‌توانند از ابزارهای موجود در این محیط برای دیباگ کردن کد در سی شارپ استفاده کنند. پیش‌تر در مطلب زیر از مجله فرادرس ویژوال استودیو کد به صورت کامل مورد بررسی قرار گرفته است.

ابزار dnSpy برای دیباگ کردن کد در سی شارپ

dnSpy یک ابزار جانبی برای دیباگ کردن و ویرایش اسمبلی‌های دات نت (Net.) است. یکی از قابلیت‌های جذاب این ابزار دی کامپایل کردن فایل‌های اجراییexe وdll است که در نتیجه آن توسعه‌دهندگان سی شارپ می‌توانند به کد اصلی برنامه دسترسی پیدا کنند و سپس، مشکلات مربوط به کد را شناسایی و برطرف کنند. به زبان ساده، dnSpy ابزاری است که به توسعه‌دهندگان امکان می‌دهد تا بدون نیاز به کد اصلی ساختار برنامه را بررسی و اشکال‌زدایی کنند.

برنامه نویس پشت لپ تاپ نشسته است و در حال بررسی خط به خط کد خود است - دیباگ کردن کد در سی شارپ

ابزار dotnet-trace برای دیباگ کردن کد در سی شارپ

dotnet-trace یک ابزار خط فرمان است که به توسعه‌دهندگان امکان می‌دهد تا رویدادهای اجرایی تولید شده توسط دات‌نت را در لحظه ضبط کنند. کاربرد اصلی این ابزار بررسی عملکرد برنامه و شناسایی نقاطی است که ممکن است برنامه دچار کندی یا مشکل شود. با استفاده از dotnet-trace می‌توان مصرف بالای CPU یا مشکلات مربوط به تاخیر در برنامه را شناسایی کرد.

ابزار dotnet-dump برای دیباگ کردن کد در سی شارپ

dotnet-dump یک ابزار خط فرمان است که با استفاده از آن می‌توان یک تصویر لحظه‌‌ای از وضعیت حافظه برنامه در حال اجرا تهیه کرد. کاربرد اصلی این ابزار تشخیص مشکلات مربوط به نشت حافظه، بررسی وضعیت اشیا، تحلیل خرابی‌ها و خطاهای احتمالی در زمان اجرای برنامه است.

ابزار LINQPad برای دیباگ کردن کد در سی شارپ

LINQPad یک محیط سبک و تعاملی برای بررسی کدهای Net. است. این ابزار برای آن دسته از توسعه‌دهندگانی مناسب است که می‌خواهند به سرعت ایده‌های جدید خود را آزمایش کنند. البته امکانات LINQPad در مقایسه با ویژوال استودیو بسیار محدود است، ولی به دلیل سادگی و سرعت اجرا برای تست سریع قطعه کدها و بررسی نتایج گزینه بسیار خوبی محسوب می‌شود.

چگونه برنامه نویسی سی شارپ را یاد بگیریم؟

سی شارپ زبان برنامه نویسی محبوب و پرکاربردی است که یادگیری آن می‌تواند فرصت‌های شغلی متعددی را برای شما ایجاد کند. این زبان محبوب در توسعه وب، ساخت بازی و نرم‌افزارهای دسکتاپ کاربردهای فراوانی دارد.

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

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

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

در صورت تمایل با کلیک بر روی تصویر زیر به صفحه اصلی مجموعه آموزش‌های سی شارپ فرادرس هدایت خواهید شد و می‌توانید به تمام آموزش‌های موجود در این مجموعه دسترسی داشته باشید.

مجموعه آموزش‌های برنامه نویسی سی شارپ C#‎ – مقدماتی تا پیشرفته فرادرس
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه آموزش‌های برنامه نویسی سی شارپ C#‎ از مقدماتی تا پیشرفته فرادرس هدایت شوید.

دیباگ کردن کد در سی شارپ با ویژوال استودیو کد

ویژوال استودیو کد یکی از بهترین ابزارها برای دیباگ کردن کدهای سی شارپ است که با وجود سبک بودن امکانات متنوعی نیز دارد. بر همین اساس در این بخش به صورت گام‌به‌گام فرایند دیباگ کردن یک برنامه سی شارپ با استفاده از ویژوال استودیو کد توضیح داده خواهد شد.

پیش‌نیاز: نصب ویژوال استودیو کد و افزونه #C

در نخستین گام باید ویژوال استودیو کد را از سایت رسمی این ابزار دانلود و نصب کنید.

  • لینک دانلود ویژوال استودیو کد: «+»

بعد از نصب ویژوال استودیو کد به منظور پشتیبانی از زبان سی شارپ باید افزونه #C را دانلود و نصب کنید که لینک آن در ادامه آورده شده است.

  • لینک دانلود افزونه #C: «+»

همچنین، برای نصب افزونه سی شارپ می‌توانید از داخل نرم‌افزار ویژوال استودیو کد به بخش Extensions بروید و افزونه #C را جستجو و سپس نصب کنید. با نصب این افزونه امکانات لازم برای دیباگ کردن کد و قابلیت‌هایی همچون تکمیل خودکار کد را در اختیار خواهید داشت. برای آشنایی بیشتر با نرم‌افزار ویژوال استودیو کد می‌توانید فیلم آموزش توسعه نرم‌افزار با ویژوال استودیو کد فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.

روش ۱: دیباگ کردن کد با F5

سریع‌تریع راه برای دیباگ کردن کد در سی شارپ زدن کلید F5 است. بعد از نصب افزونه #C بر روی ویژوال استودیو کد می‌توانید یک فایل سی شارپ با پسوند.cs را باز کنید و با فشردن کلید F5 اشکال‌زدایی پروژه خود را شروع کنید. با فشردن کلید F5 دیباگر ویژوال استودیو کد به صورت خودکار پروژه را پیدا کرده و اشکال‌زدایی را شروع می‌کند. در صورت وجود چندین پروژه باز، ممکن است از شما پرسیده شود که اشکال‌زدایی از کدام پروژه شروع شود.

دیباگ کردن کد در سی شارپ با ویژوال استودیو کد

علاوه بر این، با فشردن کلیدهای ترکیبی Ctrl + F5 می‎‌توانید بدون ورود به حال دیباگ برنامه را اجرا کنید که این شیوه برای انجام تست‌های سریع پیشنهاد می‌شود. در حقیقت فشردن کلید F5 راهی سریع برای ورود به فرایند دیباگ است که به شما امکان می‌دهد تا به صورت گام‌به‌گام فرایند اجرای کد را کنترل کنید.

روش ۲: دیباگ کردن کد با Solution Explorer

روش دیگر برای دیباگ کردن کد در سی شارپ استفاده از گزینه‌های موجود در بخش Solution Explorer است. بعد از نصب افزونه #C با کلیک راست کردن بر روی پروژه در بخش Solution Explorer یک منو برای دیباگ باز می‌شود که شامل گزینه‌های زیر است.

  • Start New Instance: با انتخاب این گزینه پروژه جدید به صورت همزمان با یک دیباگر اجرا می‌شود.
  • Start without Debugging: این گزینه پروژه را بدون ابزار اشکال‌زدایی متصل اجرا می‌کند.
  • Step into New Instance: با انتخاب این گزینه پروژه همراه با یک دیباگر داخلی اجرا خواهد شد، ولی در ابتدای کد متوقف می‌شود.

تصویر زیر نحوه انتخاب گزینه‌های دیباگ کردن کد در Solution Explorer را نشان می‌دهد.

دیباگ کردن کد در سی شارپ با Solution Explorer

روش ۳: دیباگ کردن کد با Command Palette

با استفاده از Command Palette در ویژوال استودیو کد می‌توان عملیات دیباگ کردن کد را بسیار سریع و بدون مراجعه به منو‌های پیچیده پیاده‌سازی کرد. برای باز کردن Command Palette کافی است از کلیدهای ترکیبیCtrl + Shift + P یا کلید F1 استفاده کنید. با انجام این کار یک پنجره کوچک در بالای محیط کد نویسی باز می‌شود که می‌توانید در این بخش دستورات مختلف را جستجو و اجرا کنید.

بعد از باز شدن Command Palette کافی است تا عبارتDebug: Select and Start Debugging را در این بخش وارد کنید تا فرایند دیباگ کردن کد شروع شود. همچنین، برای کنترل فرایند دیباگ می‌توانید از دستورات زیر نیز استفاده کنید.

  • Debug: Stop Debugging : با استفاده از این دستور فرایند دیباگ کردن کد متوقف می‌شود.
  • Debug: Restart : با وارد کردن این دستور فرایند دیباگ مجدد اجرا می‌شود.

بعد از شروع فرایند دیباگ VS Code امکانات کاملی برای مدیریت برنامه و نظارت بر فرایند در اختیار شما قرار می‌دهد. این ابزارها کمک می‌کنند تا روند اجرای کد و مشکلات احتمالی را بررسی کنید.

روش ۴: دیباگ کردن کد با پیکربندی راه‌اندازی پویا

برای درک بهتر این شیوه باید ابتدا به این سوال پاسخ داده شود که منظور از پیکربندی راه‌اندازی پویا در سی شارپ چیست. در زمان دیباگ کردن کد در سی شارپ باید برای ویژوال استودیو کد موارد زیر را تعیین کنید.

  • چه پروژه‌ای قرار است اجرا شود.
  • پروژه به چه تنظیماتی نیاز دارد.

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

در حالت دیباگ کردن کد به صورت پویا تظیمات پیکربندی پروژه به صورت خودکار بر اساس موقعیت و شرایط فعلی پروژه ایجاد می‌شوند. این ویژگی باعث می‌شود دیگر نیازی به تعریف دستی تنظیمات برای فایل پیکربندی در هر مرتبه دیباگ کردن پروژه نباشد و تنها با فشردن دکمه F5 به سرعت وارد حالت دیباگ شوید. استفاده از این روش برای پروژه‌های کوچک‌تر توصیه می‌شود، زیرا نیازی به مدیریت پیچیدگی‌های مربوط به فایل پیکربندی پروژه نیست.

دیباگ کردن با وجود فایل launch.json

در صورت وجود فایل پیکربندیlaunch.json می‌توانید از بخشDebug بر روی منو کشویی کلیک کرده و زبان #C را انتخاب کنید. با انتخاب این گزینه چندین انتخاب برای راه‌اندازی در اختیار خواهید داشت. بعد از انتخاب گزینه مناسب با فشردن دکمه F5 می‌توانید دیباگ کردن کد با پیکربندی جدید را شروع کنید.

دیباگ کردن بدون فایل launch.json

در صورت نبودن فایلlaunch.json در پروژه ‌می‌توانید از طریق بخشDebug تنظیمات پیکربندی را به پروژه خود اضافه کنید. برای این منظور باید گزینهShow all automatic debug configurations را انتخاب کنید.

حذف پیکربندی های پویا

امکان حذف پیکربندی‌های پویا از طریق Command Pallete و با وارد کردن دستورDebug: Select and Start Debugging وجود دارد. در منو کشویی تمام پیکربندی‌های اشکال‌زدایی پروژه نمایش داده می‌شود که از طریق آیکون سطل زباله در سمت راست می‌توان پیکربندی مورد نظر را حذف کرد.

روش ۵: دیباگ کردن کد با دکمه debug/run ویرایشگر

روش دیگر برای دیباگ کردن کد در سی شارپ استفاده از دکمه‌های «اشکال‌زدایی/اجرا» (debug/run) در ویژوال استودیو کد است. بعد از باز کردن یک فایل با پسوند.cs دکمه‌های debug/run در گوشه بالا سمت راست ویرایشگر کد در دسترس هستند. با کلیک بر روی این دکمه گزینه‌های زیر نمایش داده می‌شوند.

  • Run project associated with this file : با انتخاب این گزینه پروژه به صورت عادی بدون ویژگی‌های اشکال‌زدایی اجرا خواهد شد. برای بررسی خروجی برنامه یا تست کردن سرعت اجرا می‌توان از این گزینه استفاده کرد.
  • Debug project associated with this file : با انتخاب این گزینه برنامه در حالت اشکال‌زدایی راه‌اندازی می‌شود و با توجه به اتصال دیباگر به آن می‌توان کد را در زمان اجرا عیب‌یابی کرد. با استفاده از این گزینه می‌توان مراحل دقیق اجرای برنامه، تغییرات متغیرها و مسیرهای مختلف اجرای کد را به صورت دقیق مشاهده کرد.

تصویر زیر نحوه انتخاب دکمه‌های debug/run در ویژوال استودیو کد را نشان می‌دهد.

دیباگ کردن کد سی شارپ با دکمه debug/run ویژوال استودیو کد

بررسی فایل پیکربندی دیباگ در ویژوال استودیو کد

در ویژوال استودیو کد تنظیمات پیکربندی دیباگ در فایلlaunch.json قرار دارد. این فایل تنظیمات لازم برای شروع فرایند دیباگ کردن پروژه را در خود نگه می‌دارد که معمولاً در پوشه.vscode قرار می‌گیرد.

این فایل به توسعه‌دهندگان امکان می‌دهد تا نحوه اجرای پروژه، پارامترهای ورودی، مسیر اجرای فایل DLL یا فایل اجرایی، متغیرهای محیطی و سایر تنظیمات مهم دیگر را تعیین کنند. به زبان ساده این فایل به ویژوال استودیو کد می‌گوید که چگونه برنامه را اجرا کرده و آن را به دیباگر متصل کند. قطعه کد زیر نمونه‌ای از فایلlaunch.json را نشان می‌دهد.

این فایل شامل چندین کلید است که هر کدام کاربرد منحصر به فردی دارند. در ادامه توضیحات مربوط به هر کدام از کلیدهای موجود در این فایل آورده شده است.

  • version: نسخه فایل پیکربندی در این متغیر مشخص می‌شود.
  • name: عنوان پیکربندی که در منوی دیباگ VS Code نمایش داده خواهد شد.
  • type: نوع دیباگر مورد استفاده را نشان می‌دهد که در برنامه‌های دات‌نت ازcoreclr استفاده می‌شود.
  • request: مقدارlaunch برای این متغیر بدین معنا است که VS Code برنامه را به صورت جدید اجرا می‌کند. در نقطه مقابل مقدارattach برای اتصال به یک فرایند در حال اجرای دیگر مورد استفاده قرار می‌گیرد.
  • preLaunchTask: پیش از شروع فرایند دیباگ یک تسک اجرا می‌شود تا از اعمال آخرین تغییرات در برنامه اطمینان حاصل شود.
  • program: مسیر فایل DLL یا فایل اجرایی برنامه را نشان می‌دهد که پس از ساخت پروژه تولید شده است.
  • args: لیستی از پارامترهای ارسالی به برنامه را نشان می‌دهد.
  • cwd: پوشه کاری برای اجرای برنامه اصلی را مشخص می‌کند.
  • stopAtEntry: در صورتtrue بودن این متغیر اجرای برنامه بلافاصه در اولین خط ورودی متوقف خواهد شد تا فرایند دیباگ کردن کد از همان ابتدا آغاز شود.
  • console: محل نمایش خروجی برنامه را نشان می‌دهد. اگر مقدار آنinternalConsole باشد، خروجی در کنسول داخلی VS Code نمایش داده خواهد شد.

کاربرد Breakpoints در دیباگ کردن کد در سی شارپ چیست؟

«نقاط شکست» (Breakpoints) ابزاری قدرتمند در دیباگ کردن کد است. با استفاده از Breakpoints توسعه‌دهندگان می‌توانند فرایند اجرای برنامه را در نقاطی مشخص متوقف کنند. به زبان ساده Breakpoint ابزاری است که اجرای کد را متوقف می‌کند تا توسعه‌دهندگان بتوانند وضعیت متغیرها، مسیر اجرا و خطاهای موجود را بررسی کنند. از جمله مهم‌ترین کاربردهای Breakpoint در دیباگ کردن کد به موارد زیر می‌توان اشاره کرد.

  • بررسی مقادیر متغیرها در لحظه
  • ردیابی مسیر اجرای برنامه
  • تشخیص خطاهای منطقی برنامه

چگونه هنگام دیباگ کردن کد از Breakpoint استفاده کنیم؟

برای قرار دادن Breakpoint در برنامه کافی است در سمت چپ که شماره خطوط کد نشان داده می‌شود در فضای خالی کنار شماره خط مورد نظر کلیک کنید. با کلیک کردن در این ناحیه یک نقطه قرمز رنگ ظاهر می‌شود. روش دیگر برای قرار دادن Breakpoint این است که اشاره گر ماوس را بر روی خط مورد نظر قرار دهید. سپس، با فشردن کلید F9 می‌توانید در این خط از کد Breakpoint را فعال کنید. به این نکته باید اشاره کرد که امکان قرار دادن Breakpoint در چندین خط از کدهای برنامه وجود دارد.

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

چگونه Breakpoint ها را ویرایش یا حذف کنیم؟

در صورت نیاز به تغییر یا حذف Breakpointها در برنامه کافی است بر روی آن کلیک راست کنید و از گزینهEdit Breakpoint برای ویرایش و از گزینهDelete Breakpoint برای حذف آن استفاده کنید.

انواع Breakpoint ها در دیباگ کردن کد در سی شارپ

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

  • «نقطه توقف ساده» (Simple Breakpoint)
  • «نقطه توقف شرطی» (Conditional Breakpoint)
  • «نقطه توقف تابعی» (Function Breakpoint)
  • «نقطه توقف شمارشی» (Hit Count Breakpoint)
  • «نقطه ردیابی» (Tracepoint)
  • «نقطه توقف فعال شده» (Triggered Breakpoint)

در ادامه به بررسی هر کدام از Breakpointهای معرفی شده در بالا خواهیم پرداخت.

Breakpoint ساده

این نوع از Breakpoint به محض رسیدن اجرای برنامه به خط مشخص شده فعال می‌شود و برنامه را متوقف می‌کند. قطعه کد زیر را در نظر بگیرید.

در مثال بالا هنگامی که برنامه در حالت دیباگ اجرا می‌شود، با رسیدن به خط مربوط به محاسبه مجموعsum = a + b اجرای برنامه متوقف شده و می‌توان وضعیت متغیرهای برنامه یعنیa ،b وsum را بررسی کرد.

Breakpoint شرطی

این نوع از Breakpoint تنها زمانی فعال می‌شود که شرط مشخص شده برقرار باشد. با استفاده از این نوع Breakpoint می‌توان برنامه را در صورت برقرار شدن شرط خاصی یا رسیدن متغیر به مقدار مشخصی متوقف کرد. برای درک بهتر این نوع Breakpoint قطعه کد زیر را در نظر بگیرید.

برای قرار دادن Breakpoint شرطی کافی است بر روی Breakpoint موجود کلیک راست کرده و شرط دلخواهی را برای آن تعیین کنید. به عنوان مثال، می‌توان شرطi == 10 را برای قطعه کد بالا تعیین کرد که در این صورت با رسیدن مقدار متغیرi به این عدد برنامه متوقف خواهد شد.

Breakpoint تابعی

این نوع از Breakpoint اجرای برنامه را به محض فراخوانی یک تابع یا متد مشخص متوقف می‌کند. به زبان ساده به جای قرار دادن Breakpoint بر روی یک خط از کد می‌توان به طور مستقیم یک تابع یا متد را مشخص کرد که اجرای برنامه با فراخوانی آن تابع متوقف شود.

به عنوان مثال، فرض کنید تابعی با نامCalculate() در برنامه وجود دارد که چندین مرتبه نیز فراخوانی شده است. برای قرار دادن Breakpoint تابعی می‌توان از طریق منوی Debug گزینهNew Breakpoint و سپسBreak at Function را انتخاب کرد. در ادامه باید نام تابع را به صورت کامل در این بخش قرار داد. در نتیجه این امر با شروع فرایند دیباگ به محض فراخوانی تابعCalculate() برنامه متوقف می‌شود.

Breakpoint شمارشی

با استفاده از این نوع Breakpoint می‌توان اجرای برنامه را بعد از تعداد دفعات مشخصی متوقف کرد. Breakpoint شمارشی بیشتر در خصوص اجرای حلقه‌ها یا بخش‌هایی که به دفعات اجرا می‌شوند، مورد استفاده قرار می‌گیرد.

به عنوان مثال، شرایطی را در نظر بگیرید که یک حلقه تکرار در برنامه وجود دارد که ۱۰۰ مرتبه اجرا می‌شود. برای توقف این حلقه در اجرای ۵۰ام کافی است که بر روی Breakpoint کلیک راست کرده و گزینهHit Count… را انتخاب کنید. سپس، مقدار ۵۰ را برای آن تنظیم نمایید. با انجام این کار حلقه تکرار بعد از ۵۰ مرتبه اجرا متوقف خواهد شد و می‌توانید وضعیت سایر متغیرهای برنامه را بررسی کنید.

Tracepoint

Tracepointها نوعی دیگر از Breakpointها هستند که به جای متوقف کردن برنامه، یک پیام را در خروجی چاپ می‌کنند و اجرای برنامه ادامه پیدا می‌کند.

برای قرار دادن Tracepoint در فرایند دیباگ کافی است بر روی Breakpoint کلیک راست کرده و گزینهActions… را انتخاب کنید. سپس، یک پیام دلخواه مانند"total = {sum}" را در این بخش وارد کنید و گزینهContinue execution را انتخاب کنید.

Breakpoint فعال شده

این نوع از Breakpointها به محض رسیدن به یک Breakpoint مشخص به صورت خودکار فعال می‌شوند. از این نوع Breakpoint برای تشخیص خطاهایی استفاده می‌شود که پس از یک پیش شرط خاص رخ می‌دهند.

برای افزودن این نوع Breakpoint به فرایند دیباگ کافی است در نوار سمت چپ کلیک راست کرده و گزینهAdd Triggered Breakpoint را انتخاب کنید.

یادگیری سی شارپ با آموزش‌های پروژه محور فرادرس

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

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

در صورت تمایل با کلیک بر روی تصویر زیر به صفحه اصلی مجموعه آموزش‌های پروژه محور سی شارپ فرادرس هدایت خواهید شد و می‌توانید از فیلم‌های آموزشی پروژه محور بیشتری دیدن کنید.

مجموعه فیلم‌های پروژه‌محور سی‌شارپ #C – مقدماتی تا پیشرفته فرادرس
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش پروژه محور برنامه نویسی سی شارپ هدایت شوید.

جمع بندی

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

در این مطلب از مجله فرادرس نحوه دیباگ کردن کد در سی شارپ، ابزارها و تکنیک‌های انجام آن مورد بررسی قرار گرفت. علاوه بر این، Breakpoint و انواع آن به عنوان یکی از ابزارهای مهم در فرایند دیباگ نیز به طور کامل همراه با مثال توضیح داده شد.

بر اساس رای ۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر پرسشی درباره این مطلب دارید، آن را با ما مطرح کنید.
منابع:
Visual Studio CodeMicrosoft
PDF
مطالب مرتبط
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *