xref: /xnu-8796.141.3/tools/lldbmacros/coreanalytics.py (revision 1b191cb58250d0705d8a51287127505aa4bc0789)
1from __future__ import absolute_import
2
3from xnu import *
4
5@lldb_command("showcoreanalyticsformatstr")
6def PrintCoreAnalyticsFormatStr(cmd_args=None):
7    """ Pretty prints the full format string for a core analyics event
8        Usage: showcoreanalyticsformatstr <event>
9    """
10    if not cmd_args:
11        raise ArgumentError("Please specify an event.")
12        return
13    #event_ptr = kern.GetValueFromAddress(cmd_args[0], "struct _ca_event *").GetSBValue().GetValueAsUnsigned()
14    #print(event_ptr)
15    event = kern.GetValueFromAddress(cmd_args[0], "struct _ca_event *")
16    event_name = str(event.format_str)
17    print(event_name)
18    curr = event.format_str.GetSBValue().GetValueAsUnsigned()
19    offset = len(event_name) + 1
20    while True:
21        val = kern.GetValueFromAddress(curr + offset, "char *")
22        as_string = str(val)
23        if len(as_string) == 0:
24            break
25        offset = offset + len(as_string) + 1
26        print(as_string)
27