← man/dev_and_programming
lldb — man lldb — 80×24
ugur@toprak:~/man/dev_and_programming$man lldb
Bölüm 1 Geliştirme & Programlama

lldb

LLDB Belgeleri

Özet

       lldb [options] executable

Açıklama

lldb, yeni nesil, yüksek performanslı bir hata ayıklayıcıdır. Clang ifade ayrıştırıcısı (expression parser) ve LLVM ters derleyicisi (disassembler) gibi daha büyük LLVM Project bünyesindeki mevcut kitaplıklardan büyük ölçüde yararlanan yeniden kullanılabilir bileşenler grubu olarak oluşturulmuştur.

lldb, macOS üzerindeki Xcode'da varsayılan hata ayıklayıcıdır ve masaüstünde, iOS cihazlarında ve simülatöründe Swift, C, Objective-C ve C++ hata ayıklamayı destekler.

LLDB project kapsamındaki tüm kodlar, LLVM istisnaları ile birlikte Apache 2.0 Lisansı altında sunulmaktadır.

İliştirme (Attaching)

--attach-name Hata ayıklayıcıya verilen ada sahip bir sürece iliştirilmesini söyler.

--attach-pid Hata ayıklayıcıya verilen PID'e sahip bir sürece iliştirilmesini söyler.

-n --attach-name seçeneğinin takma adıdır.

-p --attach-pid seçeneğinin takma adıdır.

--wait-for Hata ayıklayıcıya, iliştirilmeden önce verilen PID veya ada sahip bir sürecin başlatılmasını beklemesini söyler.

  • -w: --wait-for seçeneğinin takma adıdır.

Komutlar

--batch Hata ayıklayıcıya -s, -S, -o ve -O seçeneklerindeki komutları çalıştırmasını ve ardından çıkmasını söyler.

  • -b: --batch seçeneğinin takma adıdır.

-K --source-on-crash seçeneğinin takma adıdır.

-k --one-line-on-crash seçeneğinin takma adıdır.

--local-lldbinit --no-lldbinit seçeneği geçirilmediği sürece, hata ayıklayıcının geçerli çalışma dizinindeki .lldbinit dosyalarını ayrıştırmasına izin verir.

--no-lldbinit Hiçbir '.lldbinit' dosyasını otomatik olarak ayrıştırmaz.

--one-line-before-file Hata ayıklayıcıya, komut satırında sağlanan herhangi bir dosya yüklenmeden önce bu tek satırlık lldb komutunu yürütmesini söyler.

--one-line-on-crash Toplu iş (batch) modundayken, hedon çökerse hata ayıklayıcıya bu tek satırlık lldb komutunu çalıştırmasını söyler.

--one-line Hata ayıklayıcıya, komut satırında sağlanan herhangi bir dosya yüklendikten sonra bu tek satırlık lldb komutunu yürütmesini söyler.

-O --one-line-before-file seçeneğinin takma adıdır.

-o --one-line seçeneğinin takma adıdır.

  • -Q: --source-quietly seçeneğinin takma adıdır.

--source-before-file Hata ayıklayıcıya, herhangi bir dosya yüklenmeden önce verilen dosyadaki lldb komutlarını okumasını ve yürütmesini söyler.

--source-on-crash Toplu iş (batch) modundayken, hedef çökerse hata ayıklayıcıya bu lldb komutları dosyasını kaynak almasını (source) söyler.

--source-quietly Hata ayıklayıcıya, komut satırında sağlanan dosyaları kaynak alırken veya tek satırlık komutları yürütürken komutları ekrana yansıtmamasını söyler.

--source Hata ayıklayıcıya, herhangi bir dosya yüklendikten sonra verilen dosyadaki lldb komutlarını okumasını ve yürütmesini söyler.

-S --source-before-file seçeneğinin takma adıdır.

-s --source seçeneğinin takma adıdır.

  • -x: --no-lldbinit seçeneğinin takma adıdır.

Seçenekler

--arch Hata ayıklayıcıya programı başlatırken ve çalıştırırken belirtilen mimariyi kullanmasını söyler.

-a --arch seçeneğinin takma adıdır.

--capture-path Hata ayıklayıcıya reproducer için verilen dosya adını kullanmasını söyler.

--capture Hata ayıklayıcıya bir reproducer yakalamasını söyler.

--core Hata ayıklayıcıya dosyasının tam yolunu core dosyası olarak kullanmasını söyler.

-c --core seçeneğinin takma adıdır.

--debug Hata ayıklayıcıya kendi kendisini hata ayıklamak için ekstra bilgiler yazdırmasını söyler.

  • -d: --debug seçeneğinin takma adıdır.

--editor Hata ayıklayıcıya kaynak dosyalarını ana bilgisayarın "harici düzenleyici" (external editor) mekanizmasını kullanarak açmasını söyler.

  • -e: --editor seçeneğinin takma adıdır.

--file Hata ayıklayıcıya dosyasını hata ayıklanacak program olarak kullanmasını söyler.

-f --file seçeneğinin takma adıdır.

--help LLDB hata ayıklayıcısı için kullanım bilgilerini yazdırır.

  • -h: --help seçeneğinin takma adıdır.

--no-use-colors Renkleri kullanmaz.

--replay Hata ayıklayıcıya dosyasından bir reproducer'ı yeniden oynatmasını söyler.

--version LLDB hata ayıklayıcısının mevcut sürüm numarasını yazdırır.

  • -v: --version seçeneğinin takma adıdır.

  • -X: --no-use-color seçeneğinin takma adıdır.

Repl

-r= --repl= seçeneğinin takma adıdır.

--repl-language REPL için dili seçer.

--repl= lldb'yi REPL modunda, verilen bayraklara sahip bir taslak süreç (stub process) ile çalıştırır.

-R --repl-language seçeneğinin takma adıdır.

Betik Yazma

-l --script-language seçeneğinin takma adıdır.

--print-script-interpreter-info Betik dili yorumlayıcısı hakkındaki bilgileri içeren bir JSON sözlüğü yazdırır.

--python-path lldb'nin bu sürümü için lldb.py dosyasının yolunu yazdırır.

  • -P: --python-path seçeneğinin takma adıdır.

--script-language Hata ayıklayıcıya kullanıcı tanımlı betikler için belirtilen betik dilini kullanmasını söyler.

Örnekler

       # Hata ayıklayıcı birkaç modda başlatılabilir.

       # Konumsal bir argüman olarak bir yürütülebilir dosya geçirmek, lldb'yi verilen yürütülebilir dosyayı hata ayıklamaya hazırlar.
       # lldb'ye geçirilen argümanlar ile hata ayıklanan yürütülebilir dosyaya geçirilen argümanlar arasındaki belirsizliği gidermek için, - ile başlayan argümanlar -- işaretinden sonra geçirilmelidir.
	  lldb --arch x86_64 /path/to/program program argument -- --arch armv7

       # Kolaylık sağlamak amacıyla, yürütülebilir dosyanın -- işaretinden sonra geçirilmesi de desteklenir.
	  lldb --arch x86_64 -- /path/to/program program argument --arch armv7

       # İliştirme seçeneklerinden birinin geçirilmesi, lldb'nin verilen sürece hemen iliştirilmesini sağlar.
	  lldb -p <pid> lldb -n <process-name>

       # --repl seçeneğinin geçirilmesi lldb'yi REPL modunda başlatır.
	  lldb -r

       # --core seçeneğinin geçirilmesi lldb'nin core dosyasını hata ayıklamasını sağlar.
	  lldb -c /path/to/core

       # Komut seçenekleri bu modlarla birleştirilebilir ve lldb'nin belirtilen komutları dosyanın yüklenmesi veya çökme gibi olaylardan önce veya sonra, komut satırında sağlanan sırayla çalıştırmasını sağlar.
	  lldb -O 'settings set stop-disassembly-count 20' -o 'run' -o 'bt' lldb -S \
	  /source/before/file -s /source/after/file lldb -K /source/before/crash -k \
	  /source/after/crash

       # Not: REPL modunda hiçbir dosya yüklenmez, bu nedenle dosyayı yükledikten sonra çalıştırılması belirtilen komutlar (-o veya -s aracılığıyla) yoksayılacaktır.

Lldb Kullanımı

lldb içinde, tüm lldb komutlarının açıklamalarını ve örneklerini bulmak için kullanılabilecek bir help komutu vardır. "breakpoint set" hakkında yardım almak için "help breakpoint set" yazarsınız.

Ayrıca, tüm komutların yardım metinlerinde belirli bir terimi arayacak bir apropos komutu da vardır; bu, konuya göre bir komut bulmak için yararlıdır. Örneğin, "apropos breakpoint", yardım metninde "breakpoint" kelimesi geçen tüm komutları listeleyecektir.

Yapılandırma Dosyaları

lldb; ayarlar, takma adlar ve komutlar gibi şeyleri .lldbinit dosyasından okur.

İlk olarak lldb, adı ~/.lldbinit ve ardından bir "-" ile geçerli programın adı olan uygulamaya özel başlatma (init) dosyasını okumaya çalışacaktır. Bu, komut satırı lldb'si için ~/.lldbinit-lldb ve Xcode için ~/.lldbinit-Xcode olacaktır. Uygulamaya özel bir başlatma dosyası yoksa, lldb ev dizininde bir başlatma dosyası arayacaktır. Bir REPL seçeneğiyle başlatıldıysa, öncelikle REPL diline özel bir REPL yapılandırma dosyası arayacaktır. Başlatma dosyası şu şekilde adlandırılmalıdır: .lldbinit--repl (örneğin .lldbinit-swift-repl). Bu dosya mevcut değilse veya lldb REPL ile başlatılmadıysa, yani ne bir REPL başlatma dosyası ne de uygulamaya özel bir başlatma dosyası varsa, lldb genel ~/.lldbinit dosyasına geri dönecektir.

İkinci olarak, geçerli çalışma dizininde bir .lldbinit dosyası arayacaktır. Güvenlik nedenleriyle, lldb bir uyarı yazdıracak ve varsayılan olarak bu dosyayı kaynak almayacaktır (source). Bu davranış, target.load-cwd-lldbinit ayarı değiştirilerek değiştirilebilir.

Geçerli çalışma dizinindeki .lldbinit dosyasını her zaman yüklemek için ~/.lldbinit dosyasına aşağıdaki komutu ekleyin: settings set target.load-cwd-lldbinit true

Geçerli çalışma dizinindeki .lldbinit dosyasını hiçbir zaman yüklemek ve uyarıyı susturmak için ~/.lldbinit dosyasına aşağıdaki komutu ekleyin: settings set target.load-cwd-lldbinit false

Ayrıca Bakınız

LLDB project sayfası https://lldb.llvm.org lldb kullanıcıları için birçok farklı kaynak sunmaktadır; gdb/lldb komut eşdeğerliği sayfası https://lldb.llvm.org/use/map.html özellikle gdb'den gelen kullanıcılar için çok yararlı olabilir.

Yazar

LLVM project

Telif Hakkı

2007-2025, The LLDB Team

21 November 7, 2025 LLDB(1)