نقشه GDB به LLDB MAP¶

ساخت وبلاگ

در زیر یک جدول از دستورات GDB با همتایان LLDB خود قرار دارد. ساخته شده در نام مستعار سازگاری GDB در LLDB نیز ذکر شده است. نام های کامل دستورات LLDB اغلب طولانی هستند ، اما از هر فرم کوتاه منحصر به فرد استفاده می شود. به جای "مجموعه شکست" ، "Br Se" نیز قابل قبول است.

  • دستورات اعدام
  • دستورات نقطه شکست
  • دستورات نقطه نظر
  • بررسی متغیرها
  • ارزیابی عبارات
  • بررسی وضعیت موضوع
  • دستورات پرس و جو کتابخانه قابل اجرا و مشترک
  • متفاوتی

دستورات اجرای

GDB LLDB
فرایندی را بدون استدلال راه اندازی کنید.
(GDB) اجرا (GDB) r (LLDB) راه اندازی فرآیند (LLDB) اجرا (LLDB) r
فرایندی را با استدلال راه اندازی کنید.
(GDB) اجرا (GDB) r (LLDB) راه اندازی فرآیند - (LLDB) اجرا (LLDB) r
فرآیند راه اندازی A. out با آرگومان های 1 2 3 بدون نیاز به تهیه استدلال ها هر بار.
٪ GD B-Args A. out 1 2 3 (GDB) اجرا کنید.(GDB) اجرا کنید. ٪ LLDB - a. out 1 2 3 (LLDB) اجرا کنید.(LLDB) اجرا کنید.
یا:
(GDB) مجموعه Args 1 2 3 (GDB) را اجرا کنید.(GDB) اجرا کنید. (LLDB) تنظیمات Target. Run-Args 1 2 3 (LLDB) را اجرا کنید.(LLDB) اجرا کنید.
یک فرآیند را با آرگومان ها در پنجره ترمینال جدید (فقط MACOS) راه اندازی کنید.
(LLDB) راه اندازی فرآین د-TTY -(LLDB) PRO L A-T -
فرآیندی را با استدلال در ترمینال موجود /dev /ttys006 (فقط MACOS) راه اندازی کنید.
(LLDB) راه اندازی فرآین د-TTY =/DEV/TTYS006 -(LLDB) Pro l a-t/dev/ttys006 -
متغیرهای محیط را برای فرآیند قبل از راه اندازی تنظیم کنید.
(GDB) تنظیم اشکال زدایی ENV 1 (LLDB) تنظیمات Set Target. env-Vars debug = 1 (LLDB) SE Target. env-Vars Debug = 1 (LLDB) debug = 1
متغیرهای محیط زیست برای فرآیند قبل از راه اندازی.
(GDB) اشکال زدایی ENV (LLDB) تنظیمات حذف Target. env-Vars اشکال زدایی (LLDB) تنظیم REM Target. env-Vars اشکال زدایی
استدلالهایی را که در هنگام اجرای برنامه به برنامه منتقل می شوند ، نشان دهید.
(GDB) لیست استدلال را نشان می دهد تا برنامه هنگام شروع کار "1 2 3" اشکال زدایی شود. (LLDB) تنظیمات هدف را نشان می دهد.
متغیرهای محیط را برای فرآیند و روند راه اندازی در یک دستور تنظیم کنید.
(LLDB) راه اندازی فرآین د-e اشکال زدایی = 1
با فرآیند شناسه 123 به فرآیند وصل شوید.
(GDB) 123 را وصل کنید (LLDB) فرآیند ضمیم ه-pid 123 (LLDB) ضمیم ه-p 123
به فرآیند به نام "A. Out" وصل شوید.
(GDB) A. out را ضمیمه کنید (LLDB) فرآیند ضمیم ه-نام A. OUT (LLDB) PRO A T-N A. OUT
منتظر یک فرآیند به نام "A. Out" برای راه اندازی و پیوست باشید.
(GDB) ضمیم ه-منتظر a. out (LLDB) فرآیند ضمیم ه-نام A. ou t-Waitfor (LLDB) Pro a t-n a. ou t-w
به یک سرور پروتکل GDB از راه دور که روی سیستم "eorgadd" ، پورت 8000 در حال اجرا است ، وصل کنید.
(GDB) Eorgadd از راه دور را هدف قرار دهید: 8000 (LLDB) GDB-Remote Eorgadd: 8000
به یک سرور پروتکل GDB از راه دور که روی سیستم محلی ، پورت 8000 اجرا می شود ، وصل کنید.
(GDB) LocalHost از راه دور را هدف قرار دهید: 8000 (LLDB) GDB-Remote 8000
به یک هسته داروین در حالت KDP در سیستم "Eorgadd" وصل کنید.
(GDB) KDP-reattach eorgadd (LLDB) kdp-remote eorgadd
یک مرحله سطح منبع را در موضوع انتخاب شده در حال حاضر انجام دهید.
(GDB) مرحله (GDB) s (LLDB) مرحله مرحله (LLDB) مرحله (LLDB) s
یک مرحله سطح منبع را در موضوع انتخاب شده در حال حاضر انجام دهید.
(GDB) بعدی (GDB) n (LLDB) موضوع پله (LLDB) بعدی (LLDB) n
سطح یک مرحله دستورالعمل را در موضوع انتخاب شده در حال حاضر انجام دهید.
(GDB) Stepi (GDB) SI (LLDB) موضوع مرحله (LLDB) SI
یک مرحله دستورالعمل را در موضوع انتخاب شده در حال حاضر انجام دهید.
(GDB) Nexti (GDB) ni (LLDB) موضوع مرحله اول (LLDB) ni
از قاب انتخاب شده در حال حاضر خارج شوید.
(GDB) پایان (LLDB) Thread Step-Out (LLDB) پایان
بلافاصله از قاب انتخاب شده در حال حاضر ، با یک مقدار بازگشت اختیاری بازگردید.
(GDB) بازگشت (LLDB) بازگشت موضوع
هر بار که متوقف می شوید ، پشت و جدا کنید.
(lldb) target stop-hook add Enter your stop hook command(s). Type 'DONE' to end.> bt> disassemble --pc>توقف قلاب شماره 1 اضافه شده است.
تا زمانی که خط 12 را بزنید اجرا کنید یا کنترل عملکرد فعلی را ترک می کند.
(GDB) تا 12 (LLDB) موضوع تا 12
قاب و خط منبع فعلی را نشان دهید.
(GDB) قاب (LLDB) فریم (LLDB) F (LLDB) وضعیت فرآیند را انتخاب کنید

دستورات Breakpoint¶

GDB LLDB
یک نقطه شکست را در تمام توابع به نام اصلی تنظیم کنید.
(GDB) Main Break (LLDB) مجموعه نقطه شکس ت-نام اصلی (LLDB) Br S-n Main (LLDB) B Main
یک نقطه شکست را در Test. c در خط 12 تنظیم کنید.
(GDB) BREAK TEST. C: 12 (LLDB) تنظیم نقطه شکس ت-تست فایل
نقطه شکست را در تمام روشهای C ++ تنظیم کنید که نام اصلی آنها اصلی است.
(GDB) Break Main (امیدوارم که هیچ کارکرد C به نام اصلی وجود نداشته باشد). (LLDB) مجموعه نقطه شکس ت-روش اصلی (LLDB) BR S-M Main
یک نقطه شکست را در یک تابع Objectiv e-C تنظیم کنید -[NSString StringWithFormat:].
(GDB) BREAK -[NSString StringWithFormat:] (LLDB) تنظیم نقطه شکس ت-نام " -[nsstring stringwithformat:]" (lldb) b -[nsstring stringwithformat:]
در تمام روشهای Objective-C که انتخاب کننده شمارش است ، نقطه شکست را تنظیم کنید.
(GDB) تعداد شکست (امیدوارم که هیچ کارکرد C یا C ++ به نام COUNT وجود نداشته باشد). (LLDB) مجموعه نقطه شکس ت-شمارش انتخابات (LLDB) تعداد Br S-s
یک نقطه شکست را با بیان منظم روی نام عملکرد تنظیم کنید.
(GDB) بیان منظم RBREAD (LLDB) مجموعه نقطه شکست-بیان منظم-Func-Regex (LLDB) Br S-r بیان منظم
اطمینان حاصل کنید که نقاط شکست با کار پرونده و خط برای پرونده های #include . c/. cpp/. m.
(GDB) b foo. c: 12 (LLDB) تنظیمات Set Target. inlin e-Breakpoin t-Strategy Alway (LLDB) Br S-f Foo. c-l 12
یک نقطه شکست را با بیان منظم در محتوای فایل منبع تنظیم کنید.
(GDB) SHELL GRE P-e -n الگوی منب ع-فایل (GDB) BREAK SOURC E-FILE: COPYLINENUMBERS (LLDB) مجموعه نقاط شکست-منبع-الگوی-الگوی بیان منظم-منبع فایل (LLDB) BR S-P پرونده منظم-بیا ن-f
یک نقطه شکست مشروط را تنظیم کنید.
(gdb) اگر strcmp (y ، "سلام") == 0 را بشکنید. (LLDB) مجموعه نقطه شکس ت-نام fo o-condition '(int) strcmp (y ، "سلام") == 0' (lldb) br s-n fo o-c '(int) strcmp (y ، "سلام")== 0 '
همه نقاط شکست را لیست کنید.
(GDB) شکست اطلاعات (LLDB) لیست نقطه شکست (LLDB) BR L
نقطه شکست را حذف کنید.
(GDB) 1 را حذف کنید (LLDB) نقطه شکست حذف 1 (LLDB) Br del 1
نقطه شکست را غیرفعال کنید.
(GDB) 1 را غیرفعال کنید (LLDB) نقطه شکست 1 (LLDB) Br Dis 1 را غیرفعال کنید
نقطه شکست را فعال کنید.
(GDB) 1 را فعال کنید (LLDB) نقطه شکست 1 (LLDB) Br en 1 را فعال کنید

دستورات WatchPoint ¶

GDB LLDB
هنگامی که نوشته شده است ، یک ساعت مچی را روی یک متغیر تنظیم کنید.
(GDB) Global_Var را تماشا کنید (LLDB) نقطه ساعت تنظیم متغیر global_var (lldb) wa s v global_var
هنگامی که در آن نوشته شده است ، یک نقطه نگهبان را در یک مکان حافظه تنظیم کنید. اندازه منطقه برای تماشای پیش فرض در اندازه اشاره گر در صورت مشخص شدن "-x byte_size". این دستور ورودی خام را می گیرد ، به عنوان عبارتی که یک عدد صحیح بدون امضا را نشان می دهد و به شروع منطقه اشاره می کند ، پس از Terminator گزینه "-".
(GDB) Watc h-Location G_CHAR_PTR (LLDB) بیان مجموعه ساعت - MY_PTR (LLDB) WA S E - MY_PTR
یک وضعیت را در یک ساعت نگهبان تنظیم کنید.
(LLDB) WATCH SET VAR GLOBAL (LLDB) WatchPoint Modif y-C (جهانی == 5) '(LLDB) c.(LLDB) BT * موضوع #1: TID = 0x1C03 ، 0x0000000100000ef5 A. out`modify + 21 at main. cpp: 16 ، Stop Realt = ساعت 1 قاب #0: 0x0000000100000ef5 aout`modify + 21 at main. cpp:16 قاب #1: 0x0000000100000EAC A. OUT`MAIN + 108 AT Main. cpp: 25 قاب #2: 0x00007FFF8AC9C7E1 LIBDYLD. DYLIB`START + 1 (LLDB) قاب Var Global (int32_t) جهانی = 5
لیست تمام نقاط ساعت.
(GDB) شکست اطلاعات (LLDB) لیست ساعت (LLDB) Watch L
یک نقطه نگهبان را حذف کنید.
(GDB) 1 را حذف کنید (LLDB) WatchPoint Delete 1 (LLDB) Del 1 را تماشا کنید

بررسی متغیرها

GDB LLDB
آرگومان ها و متغیرهای محلی را برای قاب فعلی نشان دهید.
(GDB) اطلاعات و (GDB) اطلاعات محلی (LLDB) متغیر قاب (LLDB) fr v
متغیرهای محلی را برای قاب فعلی نشان دهید.
(GDB) اطلاعات محلی (LLDB) متغیر قا ب-n o-args (lldb) fr v-a
محتویات متغیر محلی "نوار" را نشان دهید.
(GDB) نوار P (LLDB) نوار متغیر قاب (LLDB) Fr V Bar (LLDB) P نوار
محتویات متغیر محلی "نوار" را به عنوان هگزا نشان دهید.
(GDB) نوار P/X (LLDB) متغیر قا ب-نوار X-X (LLDB) Fr V-f X Bar
محتوای متغیر جهانی "Baz" را نشان دهید.
(GDB) P Baz (LLDB) متغیر هدف BAZ (LLDB) Ta V Baz
متغیرهای جهانی/استاتیک تعریف شده در پرونده منبع فعلی را نشان دهید.
n/a (LLDB) متغیر هدف (LLDB) TA V
هر بار که متوقف می شوید ، متغیرهای "argc" و "argv" را نمایش دهید.
(GDB) نمایشگر ARGC (GDB) نمایشگر ARGV (LLDB) Target Stop-Hook Add-One-Liner "فریم متغیر Argc Argv" (LLDB) Ta St A-o "Fr V Argc Argv" (LLDB) Display Argc (LLDB) ARGV
متغیرهای "argc" و "argv" را فقط هنگامی که در عملکردی به نام اصلی متوقف می شوید ، نمایش دهید.
.
متغیر "*این" را فقط هنگامی که در کلاس C به نام MyClass متوقف می شوید ، نمایش دهید.
.
با فرض اینکه ما یک اشاره گر مانند "int *ptr" داریم ، آرایه ای از اعداد صحیح را در حافظه چاپ کنید.
(GDB) P *ptr@10 (LLDB) PARRAY 10 PTR

ارزیابی عبارات ¶

GDB LLDB
ارزیابی یک عبارت عمومی در قاب فعلی.
(GDB) Print (int) printf ("چاپ نه: ٪ د." ، 4 + 5) یا اگر نمی خواهید بازده باطل را ببینید: (GDB) تماس بگیرید (int) printf ("چاپ نه: ٪ d."، 4 + 5) (LLDB) expr (int) printf ("چاپ نه: ٪ د." ، 4 + 5) یا با استفاده از alias چاپ: (lldb) print (int) printf ("چاپ نه: ٪ d." ، 4 + 5)
ایجاد و اختصاص یک مقدار به متغیر راحتی.
(GDB) $ foo = 5 (GDB) را تنظیم کنید متغیر $ foo = 5 یا با استفاده از دستور چاپ (GDB) $ foo = 5 را چاپ کنید یا با استفاده از دستور تماس (GDB) با $ foo = 5 تماس بگیرید و اگر می خواهید مشخص کنیدنوع متغیر: (GDB) $ foo = (int امضا نشده) 5 را تنظیم کنید در LLDB شما یک عبارت اعلامیه متغیر را ارزیابی می کنید همانطور که می خواهید آن را در C: (LLDB) EXPR بدون امضا int $ foo = 5
چاپ "توضیحات" OBJC از یک شی.
(GDB) PO [SOMECLASS RETRENTANOBJECT] (lldb) exp r-o -[someclass retuobject] یا با استفاده از alias po: (lldb) po [someclass retuobject]
نوع پویا نتیجه یک عبارت را چاپ کنید.
(GDB) تنظیم شیء چاپ 1 (GDB) P SOMECPPOBJECTPTROREREFENCE فقط برای اشیاء C ++ کار می کند. (lldb) exp r-d 1 -- [SomeClass retuAnObject] (lldb) exp r-d 1 -- someCPPObjectPtrOrReference یا چاپ نوع پویا را به عنوان پیش فرض تنظیم کنید: (lldb) تنظیمات target. prefer-dynamic run-target را تنظیم کنید
یک تابع را فراخوانی کنید تا بتوانید در نقطه شکست آن توقف کنید.
(gdb) unwindonsignal را تنظیم کنید 0 (gdb) p function_with_a_breakpoint() (lldb) exp r-i 0 -- function_with_a_breakpoint()
تابعی را فراخوانی کنید که از کار بیفتد، سپس متوقف شود.
(gdb) unwindonsignal 0 را تنظیم کنید (gdb) p function_which_crashes() (lldb) exp r-u 0 -- function_which_crashes()

بررسی وضعیت موضوع¶

 

GDB LLDB
موضوعات موجود در برنامه خود را فهرست کنید.
(gdb) رشته های اطلاعات (lldb) لیست رشته
موضوع 1 را به عنوان موضوع پیش فرض برای دستورات بعدی انتخاب کنید.
(gdb) موضوع 1 (lldb) موضوع را انتخاب کنید 1 (lldb) t 1
پشته پشته را برای رشته فعلی نشان دهید.
(gdb) bt (lldb) ردیابی نخ (lldb) bt
نمایش پشته پشته برای همه رشته ها.
(gdb) موضوع همه bt را اعمال کنید (lldb) thread backtrace all (lldb) bt all
پنج فریم اول رشته فعلی را بک تراشه کنید.
(gdb) bt 5 (lldb) ردیابی ن خ-c 5 (lldb) bt 5 ( lldb-169 و بالاتر) (lldb) b t-c 5 ( lldb-168 و قبل از آن)
یک پشته مختلف فریم به شاخص برای رشته فعلی انتخاب کنید.
(gdb) فریم 12 (lldb) فریم را انتخاب کنید 12 (lldb) fr s 12 (lldb) f 12
اطلاعات مربوط به فریم انتخابی فعلی را در رشته فعلی فهرست کنید.
(lldb) اطلاعات قاب
قاب پشته ای را انتخاب کنید که فریم پشته فعلی را نامیده است.
(gdb) بالا (lldb) up (lldb) فریم --relative=1 را انتخاب کنید
قاب پشته ای را که توسط قاب پشته فعلی فراخوانی می شود انتخاب کنید.
(gdb) پایین (lldb) پایین (lldb) قاب انتخاب --relative=-1 (lldb) fr s-r-1
یک قاب پشته متفاوت را با استفاده از یک افست نسبی انتخاب کنید.
(gdb) افزایش 2 (gdb) کاهش 3 (lldb) فریم را انتخاب کنید --relative 2 (lldb) fr s-r2

 

دستورات پرس و جوی کتابخانه قابل اجرا و مشترک¶

GDB LLDB
لیست فایل های اجرایی اصلی و همه کتابخانه های مشترک وابسته.
(gdb) اطلاعات به اشتراک گذاشته شد (lldb) لیست تصاویر
اطلاعات یک آدرس خام را در فایل اجرایی یا هر کتابخانه مشترکی جستجو کنید.
(gdb) نماد اطلاعات 0x1ec4 (lldb) جستجوی تصویر --آدرس 0x1ec4 (lldb) im lo o-a 0x1ec4
به دنبال توابع مطابق با یک عبارت منظم در یک باینری باشید.
تابع اطلاعات (gdb). این یکی نمادهای اشکال زدایی را پیدا می کند: (lldb) جستجوی تصوی ر-r -n

این یکی نمادهای غیر اشکال زدایی را پیدا می کند: (lldb) جستجوی تصوی ر-r -s

(lldb) جستجوی تصوی ر-v -- آدرس 0x1ec4

متفرقه ¶

GDB LLDB
راهنمای فرمان جستجو برای یک کلمه کلیدی.
(gdb) کلمه کلیدی apropos (lldb) کلمه کلیدی apropos
اکو متن به صفحه نمایش.
(gdb) echo اینجا چند متن است (LLDB) چاپ اسکریپت "در اینجا چند متن است"
نام های پرونده منبع را برای جلسه اشکال زدایی بازسازی کنید. اگر پرونده های منبع شما دیگر در همان مکان قرار ندارند که برنامه ساخته شده است (به عنوان مثال ، اگر این برنامه بر روی رایانه دیگری ساخته شده باشد) باید به اشکال زدایی بگویید که چگونه منابع را در مسیر پرونده محلی خود پیدا کنید به جای آنمسیر فایل سیستم ساخت.
(GDB) تنظیمات pathname /buildbot /path /my /path را تنظیم کنید (LLDB) تنظیمات Target. Source-Map /BuildBot /Path /My /Path را تنظیم کنید
برای جستجوی پرونده های منبع ، یک دایرکتوری Catchall تهیه کنید.
(GDB) فهرست /مسیر من (بدون دستور معادل - به جای آن از نقشه منبع استفاده کنید.) < Pan> (LLDB) چاپ اسکریپت "در اینجا چند متن است"
سیگنال های تجاری...
ما را در سایت سیگنال های تجاری دنبال می کنید

برچسب : نویسنده : عبدالله بوتیمار بازدید : <-PostHit-> تاريخ : پنجشنبه 26 مرداد 1402 ساعت: 14:05