from scheduler import *
+@lldb_command('showlogstream')
+def showLogStream(cmd_args=None):
+ """
+ Dump the state of the kernel log stream
+ """
+ mbp = kern.globals.oslog_streambufp
+ print "streaming buffer space avail: {0:>#x} of {1:>#x} bytes\n".format(kern.globals.oslog_stream_buf_bytesavail, kern.globals.oslog_stream_buf_size)
+ print " read head: offset {0:>#x}\nwrite head: offset {1:>#x}\n".format(mbp.msg_bufr, mbp.msg_bufx)
+ count = 0
+ print " id timestamp offset size off+size type metadata"
+ for entry in IterateSTAILQ_HEAD(kern.globals.oslog_stream_buf_head, "buf_entries"):
+ next_start = entry.offset + entry.size
+ if (next_start > 0x1000):
+ next_start = next_start - 0x1000
+ print "{0:>4d}: {1:<d} {2:>5x} {3:>4d} {4:>5x} {5:<d} {6:<d}".format(count, entry.timestamp, entry.offset, entry.size, next_start, entry.type, entry.metadata)
+ count = count + 1
+ print "found {} entries".format(count)
+
+ count = 0
+ for entry in IterateSTAILQ_HEAD(kern.globals.oslog_stream_free_head, "buf_entries"):
+ count = count + 1
+ print "free list: {} entries".format(count)
+
+ count = 0
+ for outer in IterateSTAILQ_HEAD(kern.globals.oslog_stream_buf_head, "buf_entries"):
+ for inner in IterateSTAILQ_HEAD(kern.globals.oslog_stream_buf_head, "buf_entries"):
+ if ((outer.offset > inner.offset) and
+ (outer.offset < inner.offset + inner.size)):
+ print "error: overlapping entries: {:>3x} <--> {:>3x}".format(outer.offset, inner.offset)
+ count = count + 1
+
@lldb_command('showmcastate')
def showMCAstate(cmd_args=None):
"""
if kern.arch == 'x86_64':
cpu_data = kern.globals.cpu_data_ptr[cpu_id]
return cpu_data
- elif kern.arch in ['arm', 'arm64'] :
+ elif kern.arch.startswith('arm'):
data_entries_addr = kern.GetLoadAddressForSymbol('CpuDataEntries')
data_entries = kern.GetValueFromAddress(data_entries_addr, 'cpu_data_entry_t *')
data_entry = data_entries[cpu_id];
print "Trace buffer not enabled\n"
return
- if ((kern.arch == "x86_64") or (kern.arch == "arm64")) :
+ if ((kern.arch == "x86_64") or kern.arch.startswith("arm64")) :
lp64 = True
elif kern.arch == "arm" :
lp64 = False