From d524945b8752fa9b021c765af2a485d439dcbf01 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Wed, 25 May 2011 23:21:54 +0100 Subject: [PATCH] A bit more debugging info when parsing. --- trace_parser.cpp | 52 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/trace_parser.cpp b/trace_parser.cpp index 67f31b7..1e00665 100644 --- a/trace_parser.cpp +++ b/trace_parser.cpp @@ -217,42 +217,64 @@ void Parser::parse_arg(Call *call) { Value *Parser::parse_value(void) { int c; + Value *value; c = read_byte(); switch(c) { case Trace::TYPE_NULL: - return new Null; + value = new Null; + break; case Trace::TYPE_FALSE: - return new Bool(false); + value = new Bool(false); + break; case Trace::TYPE_TRUE: - return new Bool(true); + value = new Bool(true); + break; case Trace::TYPE_SINT: - return parse_sint(); + value = parse_sint(); + break; case Trace::TYPE_UINT: - return parse_uint(); + value = parse_uint(); + break; case Trace::TYPE_FLOAT: - return parse_float(); + value = parse_float(); + break; case Trace::TYPE_DOUBLE: - return parse_double(); + value = parse_double(); + break; case Trace::TYPE_STRING: - return parse_string(); + value = parse_string(); + break; case Trace::TYPE_ENUM: - return parse_enum(); + value = parse_enum(); + break; case Trace::TYPE_BITMASK: - return parse_bitmask(); + value = parse_bitmask(); + break; case Trace::TYPE_ARRAY: - return parse_array(); + value = parse_array(); + break; case Trace::TYPE_STRUCT: - return parse_struct(); + value = parse_struct(); + break; case Trace::TYPE_BLOB: - return parse_blob(); + value = parse_blob(); + break; case Trace::TYPE_OPAQUE: - return parse_opaque(); + value = parse_opaque(); + break; default: std::cerr << "error: unknown type " << c << "\n"; exit(1); case -1: - return NULL; + value = NULL; + break; + } +#if TRACE_VERBOSE + if (value) { + std::cerr << "\tVALUE " << value << "\n"; } +#endif + return value; } -- 2.45.2