zshdb(1) User Contributed Perl Documentation zshdb(1)

zshdb - اشکال‌زدای zsh

zshdb [options] [--] script-name [script options]

zshdb [options] -c execution-string

اسکریپت "zshdb" یک اسکریپت zsh است که شرایط را برای اشکال‌زدایی از یک اسکریپت zsh دیگر فراهم می‌کند. این اشکال‌زدا دارای رابط دستوری مشابه با gdb(1) است.

اگر از اسکریپت zshdb استفاده می‌کنید و نیاز است گزینه‌هایی را به اسکریپت تحت اشکال‌زدایی ارسال کنید، علامت "--" را قبل از نام اسکریپت اضافه کنید. این کار به zshdb اعلام می‌کند که نباید هیچ گزینهٔ دیگری را پردازش کند.

پیام راهنمای استفاده را در خطای استاندارد چاپ می‌کند و با کد بازگشتی ۱۰۰ خارج می‌شود.
اطلاعات تکمیلی پشته و وضعیت را در خروجی تنظیم می‌کند که به پیش‌نماهایی (front-end) نظیر emacs امکان می‌دهد بدون نیاز به بررسی مداوم (polling)، رویدادها را ردیابی کنند.

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

set annotation LEVEL

درون اشکال‌زدا.

در جاهایی که نام فایل در خروجی اشکال‌زدا ظاهر می‌شود، فقط نام پایه (basename) را ارائه می‌دهد. این گزینه برای آزمون‌های رگرسیون مورد نیاز است. استفاده از این گزینه معادل اجرای دستور زیر درون اشکال‌زدا است:
set basename on

درون اشکال‌زدا.

به‌طور معمول اشکال‌زدا پیش از پذیرش تعامل کاربر، در صورت وجود فایل "~/.zshdbinit" دستورهای اشکال‌زدا را از آن می‌خواند. فایل ".zshdbinit" مشابه ".perldb" در Perl یا ".gdbinit" در GNU gdb است: کاربر ممکن است بخواهد چنین نمایهٔ اشکال‌زدایی را ایجاد کند تا سفارشی‌سازی‌های گوناگون مد نظر خود را به آن بیفزاید.

با استفاده از گزینهٔ "-n" این فایل مقداردهی اولیه خوانده نخواهد شد. این مورد در آزمون‌های رگرسیون یا برای ردیابی اشکال در نمایهٔ ".zshdbinit" کاربر مفید است.

به جای مشخص کردن نام یک فایل اسکریپت، می‌توان یک رشتهٔ اجرایی را برای اشکال‌زدایی تعیین کرد. از این گزینه برای انجام این کار استفاده کنید.
اطلاعات مقدماتی نسخه و کپی‌رایت را چاپ نمی‌کند. این گزینه نیز در آزمون‌های رگرسیون که در آن‌ها نمی‌خواهیم تاریخ متغیر کپی‌رایت در انطباق آزمون‌های رگرسیون وارد شود، مفید است.
دستورهای اشکال‌زداییِ موجود در debugger-cmdfile را پیش از پذیرش ورودی کاربر اجرا می‌کند. با این حال، این دستورها پس از هرگونه دستورات ".zshdbinit" خوانده می‌شوند. این گزینه نیز هنگام اجرای اسکریپت‌های اشکال‌زدایی برای آزمون رگرسیون مفید است.
اشکال‌زدا نیاز دارد تعدادی تابع را بارگذاری یا ضمیمه (source/include) کند و این توابع در یک کتابخانه قرار دارند. اگر این گزینه داده نشود، مکان پیش‌فرض کتابخانه نسبت به اسکریپت نصب‌شدهٔ zshdb عبارت است از: "../lib/zshdb".
اشکال‌زدا باید برای ذخیرهٔ اطلاعات پایدار هنگام بازگشت از زیرپوسته (subshell) یا جهت ارزیابی یک عبارت، از مقداری فضای ذخیره‌سازی موقت در سیستم‌فایل استفاده کند. دایرکتوری پیش‌فرض "/tmp" است، اما با استفاده از این گزینه می‌توانید دایرکتوری ایجاد فایل‌های موقت اشکال‌زدا را مشخص کنید.
خروجی اشکال‌زدا معمولاً به یک ترمینال ارسال می‌شود، نه به stdout یا stdin که ممکن است توسط برنامهٔ در حال اشکال‌زدایی استفاده شوند. تعیین tty یا شبه‌tty معمولاً به‌طور خودکار انجام می‌گیرد. با این حال، اگر می‌خواهید مقصد خروجی اشکال‌زدا را کنترل کنید، از این گزینه استفاده نمایید.
شمارهٔ نسخه و عدم وجود گارانتی را نمایش می‌دهد و با کد بازگشتی ۱ خارج می‌شود.

نحوهٔ سازماندهی اشکال‌زدایی توسط این اسکریپت به این صورت است که ابتدا کدهای پشتیبانی اشکال‌زدایی را ضمیمه (یا در واقع «source») می‌کند و سپس اسکریپت یا رشتهٔ دستوری داده‌شده را منبع‌یابی (source) می‌نماید.

یک مشکل در source کردن اسکریپت تحت اشکال‌زدایی این است که نام برنامه ذخیره‌شده در $0 نام اسکریپت مورد نظر برای اشکال‌زدایی نخواهد بود. اسکریپت تحت اشکال‌زدایی در پشتهٔ فراخوانی (call stack) نه به عنوان بالاترین مورد، بلکه به عنوان موردِ پایین‌تر از "zshdb" نمایش داده خواهد شد.

گزینهٔ اسکریپت "zshdb" فرض را بر این می‌گذارد که نسخهٔ zsh از اشکال‌زدایی پشتیبانی می‌کند، یعنی نسخهٔ zsh 4.3.6-dev-2 یا جدیدتر.

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

  • http://bashdb.sourceforge.net/bashdb.html - تا زمانی که یک راهنمای کامل نوشته شود، این راهنما برای اشکال‌زدای مشابه bash ممکن است رهنمودهایی ارائه دهد. این دو اشکال‌زدا دارای رابط دستوری (و کدهای) مشابهی هستند.
  • http://bashdb.sourceforge.net - صفحهٔ اصلی پروژه برای خانوادهٔ اشکال‌زداهای zshdb و bashdb.

نسخهٔ کنونی توسط Rocky Bernstein نگهداری می‌شود (یا نمی‌شود).

Copyright (C) 2009 Rocky Bernstein
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
2026-04-09 1.1.4dev