LLDB (Low Level Debugger)

LLDB is a debugger for LLVM/Clang compiler, normally used in MacOS

LLDB Cheat Sheet

A complete gdb to lldb command map.

  • Print object
(lldb) po responseObject
(lldb) po [responseObject objectForKey@"state"]
  • p - Print primitive type

Breakpoints

  • List breakpoints
br l
  • br delete - Delete breakpoint
(lldb) br delete 1
  • br e - Enable breakpoint
  • br di - Disable breakpoint
  • b - Add breakpoint
(lldb) b MyViewController.m:30
  • br set - Add symbolic breakpoint
(lldb) br set -n viewDidLoad
  • Conditional break
for(PlayerItem *item in player.inventory) {
    totalValue += item.value;
}

Set a conditional breakpoint that triggers only when totalValue is greater than 1000:

(lldb) b MerchantViewController.m:32
Breakpoint 3: where = lootcollector`-[MerchantViewController] ...
(lldb) br mod -c "totalValue > 1000" 3

Reset the condition:

(lldb) br mod -c "" 3
  • Run a debugger command from a breakpoint
(lldb) br com add 2
Enter your debugger command(s). Type 'DONE' to end.
> bt
> continue
> DONE
  • Resume excution
(lldb) continue
  • Step over
(lldb) n
  • Step in
(lldb) s
  • Print backtrace
(lldb) bt