ویرگول
ورودثبت نام
سید عمید قائم مقامی
سید عمید قائم مقامیبرنامه نویسی سیستم ویندوز و مهندسی معکوس و علاقه مند به آموزش.
سید عمید قائم مقامی
سید عمید قائم مقامی
خواندن ۳ دقیقه·۴ روز پیش

WinDbg Preview مقدماتی بر رابط کاربری


WinDbg: Home menu

کنترل جریان (Flow Control)
از دکمه‌های کنترل جریان برای وقفه انداختن (Break) در هدف دیباگ متصل‌شده، ادامه اجرای کد (Resume) و همچنین ورود به داخل کد (Step Into) یا خروج از آن (Step Out) استفاده می‌شود.

کنترل جریان معکوس (Reverse Flow Control)
از دکمه‌های کنترل جریان معکوس برای بازگشت به عقب در زمان استفاده می‌شود.

پایان (End)
از دکمه‌های بخش پایان برای راه‌اندازی مجدد (Restart)، جدا شدن (Detach) و توقف دیباگ استفاده می‌شود.

تنظیمات (Preferences)
از دکمه‌های تنظیمات برای جابجایی بین نمای سورس‌کد و اسمبلی و همچنین دسترسی به منوی Settings استفاده می‌شود.

راهنما (Help / Support)
از دکمه‌های راهنما برای انجام کارهای زیر استفاده می‌شود:

  • مشاهده راهنمای محلی: Offline help

  • دسترسی به راهنمای آنلاین: به‌روزترین راهنما


WinDbg: View menu


منوی View برای هر گزینه یک پنجرهٔ جدید باز می‌کند؛ یا اگر آن پنجره از قبل باز باشد، فوکوس را به همان پنجرهٔ موجود منتقل می‌کند.

Watch (مشاهده / پایش)
از بخش Watch برای مشاهده و پایش متغیرهای محلی و رجیسترها در حین دیباگ استفاده می‌شود.

پنجره‌های Locals و Watch هر دو بر پایه مدل داده‌ای کار می‌کنند که دستور dx از آن استفاده می‌کند. این پنجره‌ها از هرگونه افزونه NatVis یا JavaScript که بارگذاری شده باشد بهره می‌برند و همانند دستور dx از کوئری‌های کامل LINQ نیز پشتیبانی می‌کنند.

Locals (متغیرهای محلی)
بخش Locals اطلاعات مربوط به تمام متغیرهای محلی در محدوده (Scope) فعلی را نمایش می‌دهد. این بخش همچنین مقادیر متغیرهایی را که در اجرای قبلی کد تغییر کرده‌اند، برجسته (Highlight) می‌کند تا تغییرات به‌راحتی قابل تشخیص باشند.

Registers (رجیسترها)
بخش Registers محتوای رجیسترهای پردازنده را، در صورت در دسترس بودن، نمایش می‌دهد.

Memory (حافظه)
از بخش Memory برای نمایش مکان‌های حافظه استفاده می‌شود. علاوه بر وارد کردن آدرس حافظه، می‌توانید از مقادیر شبه‌رجیستر (Pseudo-register) مانند $scopeip و $eventip برای بررسی حافظه استفاده کنید. برای استفاده از مقادیر شبه‌رجیستر در Memory، علامت @ را قبل از آن‌ها قرار دهید؛ به عنوان مثال: @$scopeip.

Stack (پشته / Call Stack)
از بخش Stack برای مشاهده پشتهٔ فراخوانی (Call Stack) فعلی استفاده می‌شود. این بخش همچنین فریم جاری را به‌صورت برجسته (Highlight) نشان می‌دهد تا موقعیت فعلی در کد راحت‌تر قابل تشخیص باشد.

Disassembly (اسمبل / کد ماشین)
بخش Disassembly دستور جاری (Current Instruction) را برجسته می‌کند و هنگام اسکرول کردن، موقعیت آن دستور حفظ می‌شود تا راحت‌تر بتوانید جریان اجرای کد ماشین را دنبال کنید.

Threads (رشته‌ها / Threadها)
بخش Threads Thread جاری (Current Thread) را برجسته می‌کند تا بتوانید راحت‌تر جریان اجرای آن را دنبال کنید.

Breakpoints (نقاط توقف / Breakpointها)
از بخش Breakpoints برای مشاهده، فعال‌سازی و پاک کردن نقاط توقف (Breakpointها) استفاده می‌شود.

Logs (گزارش‌ها / لاگ‌ها)
بخش Logs برای نمایش فعالیت‌های داخلی WinDbg استفاده می‌شود. می‌توانید از آن برای نظارت بر فرآیندهای طولانی و عیب‌یابی خود دیباگر بهره ببرید.

همچنین می‌توان با استفاده از دستور .logopen، یک لاگ سنتی از دستورات دیباگر ایجاد کرد.

Notes (یادداشت‌ها)
از بخش Notes برای باز کردن یک پنجره یادداشت‌برداری استفاده می‌شود تا بتوانید نکات و توضیحات خود را هنگام دیباگ ثبت کنید.

Timelines (جدول زمانی / زمان‌بندی)
از بخش Timelines برای باز کردن پنجره Timelines یا انتقال فوکوس به آن استفاده می‌شود.

Modules (ماژول‌ها / کتابخانه‌ها)
از بخش Modules برای نمایش ماژول‌های بارگذاری‌شده و اطلاعات مرتبط با آن‌ها استفاده می‌شود. این بخش اطلاعات زیر را نشان می‌دهد:

  • نام ماژول به همراه مسیر فایل آن.

  • اندازه ماژول بر حسب بایت.

  • آدرس پایه که ماژول در حافظه بارگذاری شده است.

  • نسخه فایل (File Version).

Layouts (چیدمان‌ها / Layoutها)
از بخش Layouts برای انتخاب بین سه نوع چیدمان پنجره‌ها استفاده می‌شود.

Reset Windows (بازنشانی پنجره‌ها)
از گزینه Reset Windows برای بازنشانی پنجره‌های دیباگر به موقعیت‌های پیش‌فرض استفاده می‌شود.

Accent Color (رنگ برجسته / Accent Color)
از بخش Accent Color برای تنظیم رنگ برجسته (Accent) دیباگر استفاده می‌شود.


WinDbg: Breakpoints menu

Breakpoints Menu (منوی نقاط توقف / Breakpoints)
از منوی Breakpoints برای ایجاد نقاط توقف جدید و حذف نقاط توقف موجود استفاده می‌شود. همچنین می‌توان نقطه توقف اولیه (Initial Breakpoint) را فعال یا غیرفعال کرد.

Telegram: @CaKeegan
Gmail : amidgm2020@gmail.com

ویندوزمهندسی معکوس
۰
۰
سید عمید قائم مقامی
سید عمید قائم مقامی
برنامه نویسی سیستم ویندوز و مهندسی معکوس و علاقه مند به آموزش.
شاید از این پست‌ها خوشتان بیاید