آموزش ASP.Net

آموزش ASP.Net - خطایابی (Debugging)

Debug  همان آشکار ساختن یا پیدا کردن محل و تصحیح خطاهای منطقی یا دستوری در یک برنامه می باشد. اشکال زدایی (debugging) به برنامه نویسان اجازه می دهد به صورت مرحله ای عملکرد کدهای خود چگونگی تغییر مقدار متغیرها و نحوه ی ایجاد و حذف اشیاء را تحت نظر قرار داده و آزمایش کند.

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

debugging info

پس از فعال سازی اشکال زدایی برای وب سایت کدهای زیر در فایل web.config قرار گرفته و قابل رویت می باشد:

<system.web>
   <compilation debug="true">
      <assemblies>
      ..............
      </assemblies>
   </compilation>	
</system.web>

نوار ابزار (toolbar) Debug تمامی تجهیزات لازم را برای انجام پروسه ی اشکال زدایی فراهم می کند.

debugging toolbar

Breakpoint  (نقطۀ انفصال)

Breakpoint  زمان اجرا (runtime) را برای اجرای یک خط خاص از کد مشخص می کند و سپس اجرا (execution) را متوقف می نماید تا کد بتواند مورد بررسی قرار گیرد و job های مختلف اشکالزدایی مانند تغییر ارزش متغیرها (variable) گام از طریق کدها حرکت در داخل و خارج از functionها و method ها و غیره

به منظور تنظیم و تعیین نقطه ی انفصال روی کد مورد نظر راست کلیک کرده سپس گزینه ی insert breakpoint را انتخاب کنید. یک نقطۀ قرمز در حاشیۀ سمت چپ خط کد ظاهر شده و به دنبال آن بخشی از کد که مشکل دارد نیز قرمز می شود:

breakpoint highlighted

پس از اجرا می توانید رفتار و عملکرد آن کد مشاهده کنید:

breakpoint highlighted 2

در این مرحله می توانید کد را مرحله به مرحله دنبال کرده جریان اجرای برنامه را مشاهده کنید مقدار متغیرها خاصیت ها (property) اشیاء و غیره .. را نیز در این خلال بررسی کرده و مورد آزمایش قرار دهید.

می توان خاصیت های (property) نقاط انفصال را اصلاح کرد. این کار از طریق فهرست Properties که با راست کلیک روی گلیف breakpoint باز می شود امکان پذیر می باشد:

breakpoint dropdown

پنجرۀ محاوره ای که با انتخاب گزینه ی location از فهرست مذکور باز می شود مکان قرار گیری فایل و تعداد کاراکتر های کد انتخابی را نشان می دهد. جزء قابل گزینش (menu item) condition به شما امکان می دهد یک عبارت (expression) معتبر و مجاز را وارد کنید که با رسیدن program execution  (اجرای برنامه) به نقطۀ انفصال ارزیابی می گردد:

breakpoint condition

جزء قابل گزنیش (menu item) Hit count یک پنجره ی محاوره باز می کندکه تعداد دفعات اجرای breakpoint  (نقطۀ انفصال) را نشان می دهد.

breakpoint asp.net

کلیک روی هر گزینه ای که توسط فهرست کشویی (dropdown list) ارائه شده باشد یک فیلد ویرایش  (edit field)  باز می کند که می توان در آن Hit count مقصد را وارد کرد. این کار در تجزیه و تحلیل سازه های حلقه (loop construct) موجود در کد کمک شایان و قابل توجهی می کند.

breakpoint asp.net2

جز قابل گزنیش (menu item) Filter اجازۀ انتخاب یک فیلتر برای مشخص کردن ماشین ها فرایندها یا نخ ها (thread) و یا هر ترکیب دیگری که breakpoint برای آن اعمال شده و بکار گرفته می شود را به برنامه نویس می دهد.

breakpoint filters

جزء قابل گزنیش When Hit به شما امکان می دهد تصمیم بگیرید در صورت رسیدن به نقطۀ انفصال چه اتفاقی رخ دهد.

breakpoint asp.net3

پنجره های debug

محیط برنامه نویسی visual studio پنجره هایی برای debug و اشکال زدایی فراهم می کند که هر یک اطلاعاتی درباره ی برنامه در اختیار ما قرار می دهد. جدول زیر هریک از این پنجره ها را همراه با شرح آن ها فهرست می کند:

پنجره

شرح

Immediate

این پنجره متغیرها و عبارات را نمایش می دهد.

Autos

کلیۀ متغیرهای موجود در دستورات جاری و قبلی را نمایش می دهد.

Locals

کلیۀ متغیرهای موجود در context (زمینه) جاری را نمایش می دهد.

Watch

تا چهار مجموعه مختلف متغیر را نمایش می دهد.

Call Stack

کلیۀ متدها را در call stack (پشته ی فراخوانی) نمایش می دهد.

Call Stack : اکثر کامپایلرها برای فراخوانی و برگشت زیربرنامه فراخوانی پشته (call stack) را پیاده سازی می کنند. Call stack یا run-time stack یک پشته است که اطلاعاتی درباره زیربرنامه فعال یک برنامه را نگهداری می کند. زیربرنامه فعال زیربرنامه ای است که فراخوانی شده است اما هنوز اجرایش تمام نشده است.

Threads

نخ ها را نمایش داده و کنترل می کند.

در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش ASP.Net

Learn ASP.Net

سرفصل ها

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

سوال شما با موفقیت ثبت شد. برای اینکه بتوانیم به شما اطلاع رسانی کنیم، موارد زیر را وارد کنید:

لطفا چند لحظه منتظر بمانید ...