[h=1][/h] پروسه Debug کردن یک نرم افزار، بیشتر به یک Flow یا جریان شبیه هست. به این معنی که شما پله به پله، بر اساس مسیر اجرا، در کد به جلو می روید. یکی از مواردی که همیشه در Wish list من بود، نوعی روش debug بود که به شکل بهتری، روند اجرای کد را تعقیب کند و یک تصویر دیاگرامی از کد در حال اجرا در زمان debug را در اختیار برنامه نویس قرار دهد. خوشبختانه بخش توسعه مایکروسافت با همکاری Brown University، ابزاری به نام Debugger Canvas را برای کاربران Visual Sudio 2010 Ultimate مهیا کرده اند که دقیقا همین کار را انجام می دهد. هنگام debug، شما دیگر برای مشاهده روند اجرای برنامه از فایلی به فایل دیگر منتقل نمی شوید و در Call Stack گم نمی شوید. Debugger Canvas، قطعه کد های (Code Bubbles) در حال اجرا را در یک صفحه جدید کنار هم قرار می دهد تا شما نمای کاملی از مسیر اجرای برنامه را ببینید: برای مشاهده اینکه یک پارامتر از کجا به تابع شما پاس شده، نیازی نیست که در مسیر اجرا بین فایلها جستجو کنید. به راحتی مبدا مقدار دهی پارامتر را می توانید در یک صفحه جستجو کنید. هر code bubble، به طور مجزا یک editor کامل است. به این معنی که شما می توانید در همان code bubble، کد خود را تغییر دهید و تمامی امکانات visual studio editor (مثل Find all references، یا حیاتی ترین موردش یعنی intellisense) را در اختیار خواهید داشت (البته برای فعال کردن قابلیت تغییر کد در زمان debug، در منوی Debug => Debugger Canvas => Options and Settings، گزینه Allow editing in Debugger Canvas را فعال کرده باشید که فعلا دارای bug هست و امکان crash کردن Visual Studio وجود دارد). با راست کلیک کردن روی هر bubble، منویی ظاهر می شود که دارای گزینه های مفیدی است از جمله Navigate to File که به شما این امکان را می دهد که مستقیما به فایلی که متد مورد نظر در آن واقع شده منتقل شوید: ویژگی جدیدی که در Debugger Canvas اضافه شده و در debugger معمولی Visual Studio موجود نیست، دکمه کوچکی است که روی هر bubble وجود دارد. با کلیک روی این دکمه، تمامی متغیر های local مربوط به همان متد به ما نشان داده شده: امکان مفید دیگر اضافه شده، قابلیت گرفتن snapshot از مقدار متغیر های local برای مقایسه با مقادیر اختصاص داده شده بعدی است. در همان صفحه متغیرهای local، دکمه ای با آیکون دوربین مشاهده می کنید که از مقادیر فعلی یک snapshot تهیه می کند: بالای هر code bubble، یک breadcrumb وجود دارد که به شما نشان می دهد هر bubble، در کجای ساختار کد قرار دارد. با کلیک روی این breadcrumb ها، تمامی متد های هم رده (sibling) در آن کلاس نمایش داده میشود که با کلیک روی هر کدام از آنها، آن متد به صفحه اضافه می شود: با کلیک راست در یک مکان خالی در Debugger Canvas، امکان اضافه کردن note (به عنوان مثال برای در میان گذاشتن نکاتی با تیم یا به عنوان آرشیو فعالیتهای خود) و ذخیره کل تصویر در قالب xps مهیا شده است: در صورت فعال بودن IntelliTrace call information (در منوی Debug => Options and Settings => IntelliTrace گزینه IntelliTrace events and call information)، شما می توانید با Drag and Drop کردن یک متد از IntelliTrace => Calls View، تمامی Call Tree مربوط به آن متد را مشاهده کنید. سپس با همان نوار ابزار استاندارد IntelliTrace، می توانید پله به پله در Call Tree حرکت کنید. به نقل از Devzone.ir