Debugger در Node.js: ابزار خطایابی خط فرمان

Node.js یک ابزار خطایابی ساده در خط فرمان ارائه می‌دهد که امکان توقف اجرای کد، بررسی متغیرها، و اجرای دستورات را فراهم می‌کند. این ابزار کامل‌ترین دیباگر نیست، اما برای بررسی سریع و گام‌به‌گام کد بسیار کاربردی است. همچنین می‌توان از ادغام با V8 Inspector و Chrome DevTools برای خطایابی پیشرفته‌تر استفاده کرد.

node inspectBreakpointsWatchersreplV8 Inspector

~2 دقیقه مطالعه • بروزرسانی ۶ دی ۱۴۰۴

1. شروع Debugger


برای استفاده از دیباگر، کافی است Node.js را با آرگومان inspect اجرا کنید:


$ node inspect myscript.js

دیباگر به‌طور پیش‌فرض روی اولین خط اجرایی متوقف می‌شود.


2. اجرای تا اولین Breakpoint


برای اجرای کد تا اولین دستور debugger، متغیر محیطی زیر را تنظیم کنید:


$ NODE_INSPECT_RESUME_ON_START=1 node inspect myscript.js

3. repl و اجرای دستورات


با دستور repl می‌توان کد را در همان محیط اجرا کرد:


debug> repl
> x
5
> 2 + 2
4

4. Watchers


برای مشاهدهٔ تغییرات متغیرها در هر breakpoint:


  • watch('expr'): افزودن عبارت به لیست Watch.
  • unwatch('expr'): حذف Watch.
  • watchers: نمایش همهٔ Watchها.

5. دستورات اصلی Debugger


  • cont: ادامهٔ اجرا.
  • next: اجرای خط بعدی.
  • step: ورود به تابع.
  • out: خروج از تابع.
  • pause: توقف اجرای کد.

6. Breakpoints


  • setBreakpoint(line): تعیین breakpoint روی خط مشخص.
  • setBreakpoint('script.js', 1): تعیین breakpoint روی فایل دیگر.
  • setBreakpoint('script.js', 1, 'num < 4'): تعیین breakpoint شرطی.
  • clearBreakpoint('script.js', 1): حذف breakpoint.

7. اطلاعات و پروفایلینگ


  • backtrace: نمایش مسیر اجرای فعلی.
  • list(5): نمایش ۵ خط قبل و بعد از موقعیت فعلی.
  • profile / profileEnd: شروع و پایان پروفایل CPU.
  • takeHeapSnapshot(): گرفتن snapshot از حافظه.

8. کنترل اجرا


  • run: اجرای اسکریپت.
  • restart: اجرای مجدد.
  • kill: توقف اجرای اسکریپت.

9. ادغام با V8 Inspector


با استفاده از Chrome DevTools می‌توان خطایابی پیشرفته انجام داد:


  • --inspect: اجرای کد و اتصال دیباگر.
  • --inspect-wait: انتظار برای اتصال دیباگر قبل از اجرای کد.
  • --inspect-brk: توقف روی اولین خط کد.

$ node --inspect index.js
Debugger listening on ws://127.0.0.1:9229/...

نتیجه‌گیری


ابزار Debugger در Node.js امکان خطایابی سریع و ساده را فراهم می‌کند. با ترکیب آن با V8 Inspector و Chrome DevTools می‌توان به خطایابی پیشرفته‌تر، بررسی حافظه و پروفایلینگ CPU دست یافت. این ابزارها توسعه‌دهندگان را قادر می‌سازند تا کدهای پایدارتر و قابل اعتمادتر تولید کنند.


نوشته و پژوهش شده توسط دکتر شاهین صیامی