Ö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
--attach-pid
-n
-p
--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
-k
--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
--one-line-on-crash
--one-line
-O
-o
-Q: --source-quietly seçeneğinin takma adıdır.
--source-before-file
--source-on-crash
--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
-S
-s
-x: --no-lldbinit seçeneğinin takma adıdır.
Seçenekler
--arch
-a
--capture-path
--capture Hata ayıklayıcıya bir reproducer yakalamasını söyler.
--core
-c
--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
-f
--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
--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-language
--repl=
-R
Betik Yazma
-l
--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
Ö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-
İ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)