ابزار اشکال زدایی در Visual Studio

سه شنبه 24 فروردین 1395

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

ابزار اشکال زدایی در Visual Studio

این مقاله موضوعات زیر را پوشش میدهد:

چگونه از  سمبل ها در فایلهای (pdb.) استفاده میشود؟

چگونه از سورس سرورهای دات نت استفاده میشود؟

ابزار Threads debugging

Thread window

Parallel stack windows برای thread debugging

پیدا کردن Thread ها.

دات نت سمبلها  (NET symbol.) ، ابرداده کمکی کد ما هستند.

ابرداده کمکی(auxiliary metadata) چیست؟

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

این فایل را می توان با CLR  که برای ساخت این پروژه ایجاد شده، که هنگام بیلد پروژه ،  می توانیم  فایل  داخل  projectsolution در BIN -> debug folder را ببینید.
 نوع مختلفی از فایل در زیر وجود دارد:

different type of file

در شکل بالا   فایل نمادی مشخص شده که پسوند فایل آن .pdb  است.

.pdb برای  برنامه  اشکال زدایی فایلهای دیتابیس  است.

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

هدف اصلی از فایل PDB  ،ذخیره تمام اطلاعات در مورد فرآیند اشکال زدایی است.
این همه چیز در مورد فایل PDB و استفاده از آن است . در حال حاضر به مرحله بعد میرویم.

سرور منبع و استفاده از آن

قبل از پرداختن به این موضوع ،اجازه دهید از شما یک سوال بپرسم: آیا  ممکن است  کد های دات نت فریم ورک را با  استفاده از ویژوال استودیو اشکال زدایی  کرد؟

بله ، ما می توانیم!

بله، از طریق ویژگی های  سورس سرور ارائه شده  در VS ممکن است.

 سورس سرور اساسا یک سرور ارائه شده توسط مایکروسافت است ،  که  شامل تمام آموزش سمبولیک  برای اشکال زدایی کد دات نت فریم ورک است .

سورس سرور ، اجازه اشکال زدایی کد دات نت فریم ورک در VS را میدهد ، با استفاده از آن میتوانیم  گامی در متد هسته دات نت فریم ورک برداریم.

چگونه سورس سرور را در ویژوال استودیو  فعال کنیم؟
مرحله 1: به منوی  Debug  رفته وروی  گزینه option-setting کلیک کنید.

option-setting

مرحله2 : سپس  پنجره جدیدی که  نیاز به بررسی Enable .Net source stepping و Enable source server است ، باز میکنیم.

Enable source server

مرحله 3: پس از انجام این کار ما نیاز به انتخاب گزینه   " Symbols"  داریم. ما باید محل جدیدی داخل محل فایل سمبل قرار دهیم ، اصلی ترین چیز مشخص کردن محل برای  خواندن  فایل PDB   از مکان VS  برای اشکال زدایی دات نت فریم ورک است.

 

برای دادن یک مکان جدید مراحل زیر را دنبال کنید:

مرحله 1: اول گزینه Symbols را انتخاب کنید ، برای اضافه کردن مکان جدید بر روی دکمه مشخص شده یا فلش کلیک کنید،

select Symbols option

مرحله 2: تعیین محل و سپس OK کنید.

در حال حاضر ویژوال استودیو  تمام  فایلهای دات نت فریم ورک سمبل  را از آن مکان میخواند.

توجه: برای کار بالا تنظیمات شما باید به اینترنت متصل باشد.

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

یک بار تمام سمبل ها  لود میشود ، پس ما می توانیم به کد دات نت فریم ورک step into کنیم.

این همه چیز در مورد روند اشکال زدایی  کدهای دات نت فریم ورک بود.
 

حالا اجازه دهید درباره ی  ابزار اشکال زدایی Thread در Visual Studio صحبت کنیم:
هنگام  کار با multiple thread ها، این یک ابزار بسیار مفید است.
برای دیدن همه ی تاپیک های در حال اجرا ، به  پنجره Thread در منوی Debug میرویم.
پنجره Thread تعداد زیادی اطلاعات در مورد Thread را فراهم می کند.
برای دیدن همه ی اطلاعات در مورد Thread ما نیاز به اجرای برنامه Thread داریم.

 

 برای درک بهتر ،یک برنامه windows form ایجاد میکنیم و thread را در آن پیاده سازی میکنیم.

یک window form ساده و یک دکمه داخل آن اضافه میکنیم.

window form

در زیر رویداد کلیک دکمه را مینویسیم:

    privatevoid button1_Click(object sender, EventArgs e)  
    {  
        for (int i = 0; i < 30; i++)  
        {  
            Threadth = newThread(delegate()  
            {  
                lock(this)  
                Thread.Sleep(1000);  
            });  
            th.Start();  
        }  
    }  

سپس برنامه را استارت کنید و با کلیک بر روی دکمه، thread  ایجاد میشود و در حالت اجرا برنامه را ترک کرده و به ویژوال استودیو آمده و در داخل ویژوال استودیو از منوی debug برای دیدن تمام اطلاعات thread  روی گزینه  break all  کلیک کنید  

 پنجره thread به شرح زیر داده می شود:

thread information

 

سپس  روی thread window کلیک کنید

click thread window

 

پس از آن تمام اطلاعات  thread که استارت شده اند ، مشاهده میشود.

thread

حالا برای دیدن واضح تر  همه  thread  ها ما نیاز به حرکت به تاپیک  بعدی داریم ،برای این منظور از قسمت  window گزینه parallel stack   برای Thread   را انتخاب میکینم.

parallel stack window برای  thread استفاده شده ، تصویر روشن تر از thread با نمودار را نشان میدهد.

 برای باز کردن  parallel stack window نیاز به انجام همان روند داریم.

parallel stack

 

پس از آن در  پنجره visualization همه تاپیک ها(thread )، درحال اجرا را میبینید.مانند شکل زیر

class diagram

برای پیدا کردن thread خاص، می توانیم نام thread یا thread ID از پنجره thread استفاده کنیم، همچنین thread window  اجازه تغییر نام ، نام Thread را می دهد.

 

 

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید