This allows us to collect useful metrics about lldb debugging sessions.
I thought that an example would be better than a thousand words:
Process 19705 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step in frame #0: 0x0000000100000fb4 blah`main at blah.c:3 1 int main(void) { 2 int a = 6; -> 3 return 0; 4 } (lldb) stats enable (lldb) frame var a (int) a = 6 (lldb) expr a (int) $1 = 6 (lldb) stats disable ### Start STATISTICS dump ### Number of expr evaluation successes : 1 Number of expr evaluation failures : 0 Number of frame var successes : 1 Number of frame var failures : 0 ### End STATISTICS dump ###
Future improvements might include:
- Passing a file, or implementing categories. The way this patch has been implements is generic enough to allow this to be extended easily without breaking the grammar
- Adding an SBAPI and Python API for use in scripts.
Thanks to Jim Ingham for discussing the design with me.