HomePhabricator

[Command] Implement `statistics` command.

Authored by davide on Apr 13 2018, 11:02 AM.

Description

[Command] Implement statistics command.

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) statistics enable
(lldb) frame var a
(int) a = 6
(lldb) expr a
(int) $1 = 6
(lldb) statistics disable
(lldb) 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

Future improvements might include:

  1. Passing a file, or implementing categories. The way this patch has

been implemented is generic enough to allow this to be extended
easily without breaking the grammar.

  1. Adding an SBAPI and Python API for use in scripts.

Thanks to Jim Ingham for discussing the design with me.

rdar://problem/36555975

Differential Revision: https://reviews.llvm.org/D45547

llvm-svn: 330043

Details

Committed
davideApr 13 2018, 11:02 AM
Differential Revision
D45547: [Command] Implement `stats`
Parents
rG43a919f66788: [OPENMP] Replace push_back by emplace_back, NFC.
Branches
Unknown
Tags
Unknown