7 تاکتیک "کمتر شناخته شده" برای اشکال زدایی در Visual Studio
خبر خوب اینکه همیشه برای یادگیری بیشتر، راه های بهتری نیز وجود دارد. اشکال زدایی ویژوال استودیو موجودی دلربا است که می تواند زمان زیادی را برای یافتن و رفع مشکلات در برنامه شما صرفه جویی کند. ابزارهایی وجود دارد که می تواند اشکال زدایی را ساده تر کند. شاید با این ابزارها آشنا باشید اما زیاد به آن ها دقت نکرده باشید. بنابراین اگر شما واقعاً دوست دارید که در مورد این 7 مورد کمتر شناخته شده بیشتر یاد بگیرید با ما تا پایان این مقاله همراه باشید.
خبر خوب اینکه همیشه برای یادگیری بیشتر، راه های بهتری نیز وجود دارد. اشکال زدایی ویژوال استودیو موجودی دلربا است که می تواند زمان زیادی را برای یافتن و رفع مشکلات در برنامه شما صرفه جویی کند. ابزارهایی وجود دارد که می تواند اشکال زدایی را ساده تر کند. شاید با این ابزارها آشنا باشید اما زیاد به آن ها دقت نکرده باشید. بنابراین اگر شما واقعاً دوست دارید که در مورد این 7 مورد کمتر شناخته شده بیشتر یاد بگیرید با ما تا پایان این مقاله همراه باشید.
-
مقدار یک متغیر را بدون تغییر کد تغییر دهید
آیا تا به حال با اشکال زدایی در یک متغیر مواجه شده اید؟ یا شاید فقط بخواهید آن را تغییر دهید تا ببینید کد چگونه با یک مقدار متفاوت رفتار کند؟
شما می توانید این کار را به راحتی انجام دهید، در حالی که اشکال زدایی به سادگی با ویرایش مقدار متغیر در حافظه با استفاده از یکی از این روش ها DataTips، Autos، Locals، یا Watch windows یا Window Immediate به بهترین شکل در جریان کار خود قرار دهید.
برای متغیر DataTip روی یک متغیر حرکت کنید و سپس بر روی مقدار در جدول کلیک کنید و یا روی آن کلیک راست کنید و "Edit value" را از منوی context انتخاب کنید. به این ترتیب شما می توانید یک مقدار جدید برای متغیر ارائه کنید.
در Autos، Locals، یا Watch windows بر روی مقدار کلیک کنید و یا روی آن کلیک راست کنید و گزینه "Edit value" را از منوی context انتخاب کنید. مقدار آماده ویرایش می شود و شما می توانید یک مقدار جدید برای متغیر ارائه کنید.
در پنجره Immediate ، شما می توانید خودتان از کد استفاده کنید تا متغیر را به یک مقدار جدید مجدداً اعطا کنید. به عنوان مثال، شما می توانید "x = 12؛" را تایپ کنید که مقدار حافظه درون متغیر x را به شماره 12 تغییر می دهد. این روش بیشتر سودمند است اگر قبل از اختصاص دادن به آن نیاز به ایجاد یا دستکاری یک متغیر داشته باشید .
-
مقدارها را در تمام عملکردهای بازگشتی مشاهده کنید.
آیا شما به طور معمول توابع بازگشتی اشکال زدایی را با استفاده از Debug.WriteLine() پیدا می کنید؟
خب ممکن است دشوار باشد که در سر خود چشمان خود را باز کنید!
یکی از موارد کمکی که برای این بار ذهنی می توان بکار برد، استفاده از پنجره Parallel Watch در متغیرهای بازگشتی است.
- پنجره Parallel Watch را باز کنید. (Debug / Windows / Watch Parallel)
- روی <Add Watch> کلیک کنید و نام متغیر مورد نظرتان را تایپ کنید.
- به این ترتیب مقدارها به این شکل به این پنجره اضافه می شوند.
-
نمایش مقادیر پارامتر در Call Stack
اکثر توسعه دهندگان از Call Stack مانند یک نقشه برای اشکال زدایی برنامه خود استفاده می کنند. Call Stack می تواند اطلاعات اضافی مفید را به خود جلب کند، مانند مقادیر پارامتر.
- بر روی یک فریم در Call Stack کلیک راست کنید.
- در منوی context گزینه ی "Show Parameter Values" را انتخاب کنید.
- حالا مقادیر مستقیماً به عنوان پارامترهای ورودی در ستون Name درج می شوند.
نکته: هنگامی که گزینه « Show Parameter Values» در Call Stack روشن است و در ستون ها قابل مشاهده است، می تواند تأثیری جدی بر اشکال زدایی شما داشته باشد. توصیه می کنیم زمانی که از آن به طور فعال استفاده نمی کنید این گزینه را خاموش کنید.
-
بدون استفاده از منابع دستی به توابع دسترسی پیدا کنید
آیا شما تا به حال وضعیتی را کشف کرده اید که می دانید چه چیزی نیاز به اشکال زدایی دارید، اما پیدا کردن فایل منبع که حاوی این کد است، کمی دشوار است؟
تنظیم یک نقطه شکست تابع (Function Breakpoint) یک راه سریع برای تعیین یک نقطه پایانی در اشکال زدایی بدون نیاز به دانستن کدام فایل و خط کد در آن است.
- دکمه CTRL+B را فشار دهید و یا Debug/New Breakpoint/Function Breakpoint را انتخاب کنید.
- نام تابعی را که میخواهید بردارید، تایپ کنید و OK بزنید.
- شروع به اشکال زدایی کنید، کد خود را برای اجرا بفرستید و به عنوان "نقطه توقف جادویی در فایل منبع" که نیازی به پیدا کردن آن به طور دستی نداشته باشید تماشا کنید.
-
اجرای تمام مشکلات در یک محل
گاهی اوقات برای بررسی یک اشکال، ممکن است ساده تر باشد که تمام موضوعات را در یک مکان متوقف کند تا بتوانید وضعیت برنامه را در آن زمان بررسی کنید. یک راه آسان برای انجام این کار استفاده از Run Flagged Threads to Cursor است.
از موضوعاتی که علاقه مند هستید مشخص کنید. شما می توانید از نمایش موضوعات در منبع (Show Threads in Source)، پنجره های Parallel Debugging یا پنجره Thread ها استفاده کنید.
- یک Flag (علامت) برای مواردی که علاقه دارید، انتخاب کنید.
- بر روی خط کدی که می خواهید بررسی کنید، کلیک راست کنید.
- در منوی context، گزینه Run Flagged Threads to Cursor را انتخاب کنید.
نکته: این گزینه را نیز فقط در صورت لزوم روشن کنید. درغیر اینصورت "غیرفعال" باشد.
-
انتخاب Switch to Thread
پنجره parallel watch برای دیدن بسیاری از متغیرها در موضوعات، حتی آنهایی که متوقف نشده اند، عالی است. اما چه زمانی میخواهید حالت دقیق برنامه را در آن موضوع بررسی کنید؟
پیکان زرد، دستورالعمل فعلی مربوط به موضوع فعلی را نشان می دهد و زمینه را برای بقیه اشکال زدایی تنظیم می کند. پنجره های parallel watch، Data-tips و Call Stackهمگی اینکار را انجام می دهند. شما با استفاده از Switch to Thread می توانید متغیرها را همراه با موضوعات مرتبط با آن ها تغییر دهید.
- موضوعی را که میخواهید بازبینی کنید انتخاب کنید. شما می توانید آن را با استفاده از Show Threads در منبع، پنجره های parallel Debugging یا پنجره Thread ها شناسایی کنید.
- بر روی موضوع کلیک راست کنید و Switch to Thread… و موضوع خود را انتخاب کنید.
- توجه کنید که چگونه فلش زرد به محل آن رشته تغییر می کند.
شما همچنین می توانید با استفاده از نوار ابزار Debug Location اشکال زدایی فعلی خود را تغییر دهید. (بر روی کشویی که لیست موضوعات را در برنامه لیست می کند و یک موضوع را برای تغییر دادن انتخاب می کند.)
Debug Location Toolbar یک ابزار عالی برای استفاده است. ویژگی های این نوار ابزار به طور قابل توجهی بر عملکرد برنامه تاثیر نمی گذارد و می تواند به عنوان یک میانبر برای بسیاری از سناریوهای رشته ای مورد استفاده قرار گیرد.
توصیه می کنیم تنها انتخاب این ویژگی ها زمانی که شما از آنها برای اشکال زدایی استفاده می کنید، فعال باشند.
-
توقف در زمانیکه یک متغیر در حال تغییر است
برای توسعه دهندگان یک نقطه متوقف شدن داده وجود دارد که می تواند به شما کمک کند تا مسائل ناشی از متغیرهایی که به طور ناگهانی دستکاری می شوند، ردیابی کنید.
بعد از اینکه شی در حافظه ایجاد شد، در یک مکان در کد توقف کنید
- Debug/New Breakpoint/Data Breakpoint را انتخاب کنید.
- آدرس متغیری را که می خواهید در مورد آن اطلاعات بدست آورید، تایپ کنید. به عنوان مثال، & MyVariableName، یا 0x0085F918
- تعداد بایت هایی که از آن آدرس شروع می شود و قرار است نمایش داده شود را انتخاب کنید.
- نقطه توقف راه اندازی می شود و اشکال زدایی در خط کدی که آدرس حافظه آن را تغییر داده است، متوقف خواهد شد.
توجه: مهم است که به یاد داشته باشید که آدرس های حافظه هر بار که شما شروع به اشکال زدایی می کنید متفاوت است، بنابراین هر بار که بررسی یک دیباگ را شروع می کنید، نیاز به پاک کردن داده ها و بازنشانی داده ها دارید. تعداد نقاط قطع داده که شما می توانید در یک زمان فعال داشته باشید، توسط سخت افزار محیط شما محدود شده است و اشکال زدایی شما را هنگامی که به این حد می رسند هشدار می دهد.
بنابراین به این شکل و با این 7مورد می توانید مشکلات موجود در ویژوال استودیو را حل و فصل کنید.
منبع: microsoft
"منتشر شده در سایتABLY"