| LLDB(1) | LLDB | LLDB(1) |
نام (NAME)
lldb - مستندات دیباگر LLDB
خلاصه دستور (SYNOPSIS)
lldb [options] executable
توضیحات (DESCRIPTION)
lldb یک دیباگر نسل جدید و با کارایی بالا است. این برنامه بهصورت مجموعهای از مؤلفههای با قابلیت استفادهٔ مجدد ساخته شده است که بهطور گسترده از کتابخانههای موجود در پروژهٔ بزرگتر LLVM، مانند تجزیهکنندهٔ عبارت Clang و دیاسمبلر LLVM بهره میبرند.
lldb دیباگر پیشفرض در Xcode روی macOS است و از اشکالزدایی C، Objective-C و C++ روی رایانههای رومیزی، دستگاههای iOS و شبیهساز پشتیبانی میکند.
تمام کدهای موجود در پروژهٔ LLDB تحت مجوز Apache 2.0 با استثنائات LLVM منتشر شده و در دسترس هستند.
پیوست شدن (ATTACHING)
- --attach-name <name>
- به دیباگر اعلام میکند تا به فرایندی با نام دادهشده متصل شود.
- --attach-pid <pid>
- به دیباگر اعلام میکند تا به فرایندی با pid مشخصشده متصل شود.
- -n <value>
- نام مستعار برای --attach-name
- -p <value>
- نام مستعار برای --attach-pid
- --wait-for
- به دیباگر اعلام میکند قبل از متصل شدن، منتظر راهاندازی و اجرای فرایندی با pid یا نام مشخصشده بماند.
- -w
- نام مستعار برای --wait-for
- --batch
- به دیباگر اعلام میکند دستورهای -s، -S، -o و -O را اجرا کرده و سپس خارج شود.
- -b
- نام مستعار برای --batch
- -K <value>
- نام مستعار برای --source-on-crash
- -k <value>
- نام مستعار برای --one-line-on-crash
- --local-lldbinit
- به دیباگر اجازه میدهد فایلهای .lldbinit موجود در دایرکتوری کاری فعلی را پردازش کند، مگر آنکه --no-lldbinit داده شده باشد.
- --no-lldbinit
- هیچ فایل '.lldbinit' را بهطور خودکار پردازش نکند.
- --one-line-before-file <command>
- به دیباگر اعلام میکند این دستور تکخطی lldb را پیش از بارگذاری هر فایلی که در خط فرمان مشخص شده، اجرا کند.
- --one-line-on-crash <command>
- در حالت دستهای (batch mode)، به دیباگر اعلام میکند در صورت کرش کردن هدف، این دستور تکخطی lldb را اجرا کند.
- --one-line <command>
- به دیباگر اعلام میکند این دستور تکخطی lldb را پس از بارگذاری هر فایلی که در خط فرمان مشخص شده، اجرا کند.
- -O <value>
- نام مستعار برای --one-line-before-file
- -o <value>
- نام مستعار برای --one-line
- -Q
- نام مستعار برای --source-quietly
- --source-before-file <file>
- به دیباگر اعلام میکند پیش از بارگذاری هر فایلی، دستورهای lldb درون فایل دادهشده را خوانده و اجرا کند.
- --source-on-crash <file>
- در حالت دستهای، به دیباگر اعلام میکند در صورت کرش کردن هدف، این فایلِ حاوی دستورهای lldb را اجرا کند.
- --source-quietly
- به دیباگر اعلام میکند هنگام اجرای فایلها یا دستورهای تکخطی ارائهشده در خط فرمان، دستورها را در خروجی چاپ (echo) نکند.
- --source <file>
- به دیباگر اعلام میکند پس از بارگذاری هر فایلی، دستورهای lldb درون فایل دادهشده را خوانده و اجرا کند.
- -S <value>
- نام مستعار برای --source-before-file
- -s <value>
- نام مستعار برای --source
- -x
- نام مستعار برای --no-lldbinit
- --arch <architecture>
- به دیباگر اعلام میکند که هنگام راهاندازی و اجرای برنامه از معماری مشخصشده استفاده کند.
- -a <value>
- نام مستعار برای --arch
- --capture-path <filename>
- به دیباگر اعلام میکند که از نام فایل دادهشده برای بازتولیدکننده (reproducer) استفاده کند.
- --capture
- به دیباگر اعلام میکند که یک بازتولیدکننده (reproducer) را ضبط کند.
- --core <filename>
- به دیباگر اعلام میکند که از مسیر کامل به <filename> به عنوان فایل core استفاده کند.
- -c <value>
- نام مستعار برای --core
- --debug
- به دیباگر اعلام میکند که اطلاعات اضافی را برای دیباگ کردن خود چاپ کند.
- -d
- نام مستعار برای --debug
- --editor
- به دیباگر اعلام میکند که فایلهای کد منبع را با استفاده از سازوکار "ویرایشگر خارجی" میزبان باز کند.
- -e
- نام مستعار برای --editor
- --file <filename>
- به دیباگر اعلام میکند که از فایل <filename> به عنوان برنامهای که باید دیباگ شود استفاده کند.
- -f <value>
- نام مستعار برای --file
- --help
- اطلاعات نحوه استفاده از دیباگر LLDB را چاپ میکند.
- -h
- نام مستعار برای --help
- --no-use-colors
- از رنگها استفاده نمیکند.
- --replay <filename>
- به دیباگر اعلام میکند که یک بازتولیدکننده (reproducer) را از <filename> بازپخش کند.
- --version
- شماره نسخه فعلی دیباگر LLDB را چاپ میکند.
- -v
- نام مستعار برای --version
- -X
- نام مستعار برای --no-use-color
- -r=<flags>
- نام مستعار برای --repl=<flags>
- --repl-language <language>
- زبان مورد استفاده برای REPL را انتخاب میکند.
- --repl=<flags>
- برنامه lldb را در حالت REPL همراه با یک فرایند ساختگی (stub) با پرچمهای مشخصشده اجرا میکند.
- -R <value>
- نام مستعار برای --repl-language
اسکریپتنویسی (SCRIPTING)
- -l <value>
- نام مستعار برای --script-language
- --print-script-interpreter-info
- یک دیکشنری json حاوی اطلاعات مربوط به مفسر زبان اسکریپتنویسی را چاپ میکند.
- --python-path
- مسیر فایل lldb.py را برای این نسخه از lldb چاپ میکند.
- -P
- نام مستعار برای --python-path
- --script-language <language>
- به دیباگر اعلام میکند که از زبان اسکریپتنویسی مشخصشده برای اسکریپتهای تعریفشده توسط کاربر استفاده کند.
مثالها (EXAMPLES)
دیباگر را میتوان در چندین حالت راهاندازی کرد.
ارسال یک فایل اجرایی به عنوان یک آرگومان موضعی، lldb را برای اشکالزدایی فایل اجرایی دادهشده آماده میکند. برای جلوگیری از ابهام میان آرگومانهای ارسالی به lldb و آرگومانهای ارسالی به فایل اجرایی تحت اشکالزدایی، آرگومانهایی که با - آغاز میشوند باید پس از -- ارسال گردند.
برای راحتی بیشتر، ارسال فایل اجرایی پس از -- نیز پشتیبانی میشود.
ارسال یکی از گزینههای اتصال (attach) باعث میشود lldb بیدرنگ به فرایند دادهشده متصل شود.
ارسال --repl برنامه lldb را در حالت REPL راهاندازی میکند.
ارسال --core باعث میشود lldb فایل core را اشکالزدایی کند.
گزینههای دستوری میتوانند با این حالتها ترکیب شده و موجب شوند lldb دستورهای تعیینشده را قبل یا بعد از رویدادها، مانند بارگذاری فایل یا کرش کردن، به ترتیبی که در خط فرمان آمده اجرا کند.
نکته: در حالت REPL هیچ فایلی بارگذاری نمیشود، بنابراین دستورهای تعیینشده برای اجرا پس از بارگذاری فایل (از طریق -o یا -s) نادیده گرفته خواهند شد..SH "استفاده از LLDB (USING LLDB)"
در lldb یک دستور help وجود دارد که میتواند برای یافتن توضیحات و مثالهای مربوط به تمام دستورات lldb استفاده شود. برای دریافت راهنما دربارهٔ "breakpoint set"، باید عبارت "help breakpoint set" را وارد کنید.
همچنین یک دستور apropos وجود دارد که متن راهنمای تمام دستورات را برای یافتن یک عبارت مشخص جستجو میکند ‐‐ این قابلیت برای یافتن یک دستور بر اساس موضوع مفید است. برای نمونه، "apropos breakpoint" هر دستوری را که واژهٔ "breakpoint" در متن راهنمایش آمده باشد فهرست میکند.
فایلهای پیکربندی (CONFIGURATION FILES)
lldb مواردی مانند تنظیمات، نامهای مستعار و دستورات را از فایل .lldbinit میخواند.
ابتدا، lldb تلاش میکند فایل init مخصوص برنامه را بخواند که نام آن به صورت ~/.lldbinit به همراه یک "-" و نام برنامهٔ جاری است. این نام برای نسخهٔ خط فرمان lldb برابر ~/.lldbinit-lldb و برای Xcode برابر ~/.lldbinit-Xcode خواهد بود. اگر فایل init مخصوص برنامه وجود نداشته باشد، lldb به دنبال یک فایل init در دایرکتوری خانگی خواهد گشت. اگر برنامه با گزینهٔ REPL اجرا شده باشد، ابتدا به دنبال فایل پیکربندی REPL ویژهٔ زبان آن REPL میگردد. نام این فایل init باید به این صورت باشد: .lldbinit-<language>-repl (برای مثال .lldbinit-swift-repl). اگر این فایل وجود نداشته باشد یا lldb با REPL اجرا نشده باشد—به این معنی که نه فایل init مخصوص REPL و نه فایل init مخصوص برنامه یافت نشود—lldb به فایل سراسری ~/.lldbinit بازمیگردد.
در مرحلهٔ دوم، این ابزار به دنبال یک فایل .lldbinit در دایرکتوری کاری فعلی میگردد. به دلایل امنیتی، lldb به طور پیشفرض هشداری چاپ کرده و این فایل را بارگذاری (source) نمیکند. این رفتار را میتوان با تغییر دادن تنظیم target.load-cwd-lldbinit عوض کرد.
برای بارگذاری همیشگی فایل .lldbinit در دایرکتوری کاری فعلی، دستور زیر را به ~/.lldbinit اضافه کنید:
برای اینکه فایل .lldbinit در دایرکتوری کاری فعلی هرگز بارگذاری نشود و نمایش هشدار نیز غیرفعال گردد، دستور زیر را به ~/.lldbinit اضافه کنید:
همچنین ببینید (SEE ALSO)
صفحهٔ پروژهٔ LLDB در https://lldb.llvm.org منابع گوناگونی برای کاربران lldb دارد ‐‐ صفحهٔ معادلهای دستورات gdb/lldb در https://lldb.llvm.org/use/map.html میتواند به ویژه برای کاربرانی که از gdb میآیند بسیار مفید باشد.
نویسندگان (AUTHORS)
پروژه LLVM
کپیرایت و تکثیر (COPYRIGHT)
2007-2026, The LLDB Team
| June 21, 2026 | 22 |