- Configure behaviors to dedicate a tab for debugging
- LLDB expressions can modify program state
- Use auto-continuing breakpoints with debugger commands to inject code live Create dependent breakpoints using
breakpoint set * --one-shot true
po $arg1
($arg2, etc) in assembly frames to print function arguments- Skip lines of code by dragging Instruction Pointer or
thread jump --by 1
Pause when variables are modified by using watchpoints - Evaluate Obj-C code in Swift frames with
expression -l objc -O -- <expr>
- Flush view changes to the screen using
expression CATransaction.flush()
- Add custom LLDB commands using aliases and scripts. Alias examples:
command alias poc expression -l objc -O --
command alias 🚽 expression -l objc -- (void)[CATransaction flush]
- The nudge LLDB script will be available from the session website https://developer.apple.com/wwdc18/412
Command | Alias for | Steps to evaluate |
---|---|---|
po <expression> |
expression --object-description -- <expression> |
1) Expression: evaluate <expression> 2) Expression: debug description |
p <expression> |
expression -- <expression> |
1) Expression: evaluate <expression> 2) Outputs LLDB-formatted description |
frame variable <name> |
1) Reads value of <name> from memory 2) Outputs LLDB-formatted description |