Lines Matching refs:item

32 static const char *GetModuleName(const TraceDumper::TraceItem &item) {  in GetModuleName()  argument
33 if (!item.symbol_info || !item.symbol_info->sc.module_sp) in GetModuleName()
35 return item.symbol_info->sc.module_sp->GetFileSpec() in GetModuleName()
103 void TraceItem(const TraceDumper::TraceItem &item) override { in TraceItem() argument
104 if (item.symbol_info) { in TraceItem()
105 if (!item.prev_symbol_info || in TraceItem()
106 !IsSameInstructionSymbolContext(*item.prev_symbol_info, in TraceItem()
107 *item.symbol_info)) { in TraceItem()
109 const char *module_name = GetModuleName(item); in TraceItem()
112 else if (!item.symbol_info->sc.function && !item.symbol_info->sc.symbol) in TraceItem()
115 item.symbol_info->sc.DumpStopContext( in TraceItem()
116 &m_s, item.symbol_info->exe_ctx.GetTargetPtr(), in TraceItem()
117 item.symbol_info->address, in TraceItem()
126 if (item.error && !m_was_prev_instruction_an_error) in TraceItem()
129 m_s.Format(" {0}: ", item.id); in TraceItem()
132 m_s.Format("[{0}] ", item.timestamp in TraceItem()
133 ? formatv("{0:3} ns", *item.timestamp).str() in TraceItem()
137 if (item.event) { in TraceItem()
138 m_s << "(event) " << TraceCursor::EventKindToString(*item.event); in TraceItem()
139 switch (*item.event) { in TraceItem()
142 item.cpu_id ? std::to_string(*item.cpu_id) : "unavailable"); in TraceItem()
145 m_s.Format(" [{0}]", item.hw_clock ? std::to_string(*item.hw_clock) in TraceItem()
152 } else if (item.error) { in TraceItem()
153 m_s << "(error) " << *item.error; in TraceItem()
155 m_s.Format("{0:x+16}", item.load_address); in TraceItem()
156 if (item.symbol_info && item.symbol_info->instruction) { in TraceItem()
158 item.symbol_info->instruction->Dump( in TraceItem()
162 &item.symbol_info->exe_ctx, &item.symbol_info->sc, in TraceItem()
169 m_was_prev_instruction_an_error = (bool)item.error; in TraceItem()
214 void DumpEvent(const TraceDumper::TraceItem &item) { in DumpEvent() argument
215 m_j.attribute("event", TraceCursor::EventKindToString(*item.event)); in DumpEvent()
216 switch (*item.event) { in DumpEvent()
218 m_j.attribute("cpuId", item.cpu_id); in DumpEvent()
221 m_j.attribute("hwClock", item.hw_clock); in DumpEvent()
229 void DumpInstruction(const TraceDumper::TraceItem &item) { in DumpInstruction() argument
230 m_j.attribute("loadAddress", formatv("{0:x}", item.load_address)); in DumpInstruction()
231 if (item.symbol_info) { in DumpInstruction()
232 m_j.attribute("module", ToOptionalString(GetModuleName(item))); in DumpInstruction()
235 ToOptionalString(item.symbol_info->sc.GetFunctionName().AsCString())); in DumpInstruction()
237 if (item.symbol_info->instruction) { in DumpInstruction()
239 ToOptionalString(item.symbol_info->instruction->GetMnemonic( in DumpInstruction()
240 &item.symbol_info->exe_ctx))); in DumpInstruction()
243 if (IsLineEntryValid(item.symbol_info->sc.line_entry)) { in DumpInstruction()
247 item.symbol_info->sc.line_entry.file.GetPath().c_str())); in DumpInstruction()
248 m_j.attribute("line", item.symbol_info->sc.line_entry.line); in DumpInstruction()
249 m_j.attribute("column", item.symbol_info->sc.line_entry.column); in DumpInstruction()
254 void TraceItem(const TraceDumper::TraceItem &item) override { in TraceItem() argument
256 m_j.attribute("id", item.id); in TraceItem()
258 m_j.attribute("timestamp_ns", item.timestamp in TraceItem()
260 std::to_string(*item.timestamp)) in TraceItem()
263 if (item.event) { in TraceItem()
264 DumpEvent(item); in TraceItem()
265 } else if (item.error) { in TraceItem()
266 m_j.attribute("error", *item.error); in TraceItem()
268 DumpInstruction(item); in TraceItem()
310 TraceItem item = {}; in CreatRawTraceItem() local
311 item.id = m_cursor_up->GetId(); in CreatRawTraceItem()
314 item.timestamp = m_cursor_up->GetWallClockTime(); in CreatRawTraceItem()
315 return item; in CreatRawTraceItem()
384 TraceItem item = CreatRawTraceItem(); in DumpInstructions() local
389 item.event = m_cursor_up->GetEventType(); in DumpInstructions()
390 switch (*item.event) { in DumpInstructions()
392 item.cpu_id = m_cursor_up->GetCPU(); in DumpInstructions()
395 item.hw_clock = m_cursor_up->GetHWClock(); in DumpInstructions()
402 item.error = m_cursor_up->GetError(); in DumpInstructions()
405 item.load_address = m_cursor_up->GetLoadAddress(); in DumpInstructions()
410 symbol_info.address.SetLoadAddress(item.load_address, in DumpInstructions()
416 item.prev_symbol_info = prev_symbol_info; in DumpInstructions()
417 item.symbol_info = symbol_info; in DumpInstructions()
421 m_writer_up->TraceItem(item); in DumpInstructions()