From 69ba9e0f949570be3505931a5c6d8012aa5ae30e Mon Sep 17 00:00:00 2001 From: Horst Schirmeier Date: Thu, 13 Feb 2014 18:31:14 +0100 Subject: [PATCH] dump-trace: properly deal with empty extended trace entries As dereferencing register contents is not always possible, extended trace entries may be empty. Change-Id: I603fcef2eb2b0429a9d6ed0469441bc314e365fd --- tools/dump-trace/DumpTrace.cc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tools/dump-trace/DumpTrace.cc b/tools/dump-trace/DumpTrace.cc index d2799072..875dd67d 100644 --- a/tools/dump-trace/DumpTrace.cc +++ b/tools/dump-trace/DumpTrace.cc @@ -107,9 +107,18 @@ int main(int argc, char *argv[]) for (int i = 0; i < temp_ext.registers_size(); i++) { const Trace_Event_Extended_Registers& temp_reg = temp_ext.registers(i); ext << " REG " - << (unsigned) temp_reg.id() << " = " - << (uint32_t) temp_reg.value() << " -> " - << (uint32_t) temp_reg.value_deref(); + << (unsigned) temp_reg.id() << " = "; + if (temp_reg.has_value()) { + ext << (uint32_t) temp_reg.value(); + } else { + ext << "??"; + } + ext << " -> "; + if (temp_reg.has_value_deref()) { + ext << (uint32_t) temp_reg.value_deref(); + } else { + ext << "??"; + } } if (temp_ext.stack_size() > 0 ) { ext << " STACK:";