public CounterValue(LogFileReader reader, ulong index) { Index = index; Type = (uint)reader.ReadULeb128 (); switch ((CounterValueType)Type) { case CounterValueType.MONO_COUNTER_STRING: if (reader.ReadULeb128 () == 1) reader.ReadNullTerminatedString (); break; case CounterValueType.MONO_COUNTER_WORD: case CounterValueType.MONO_COUNTER_INT: case CounterValueType.MONO_COUNTER_LONG: reader.ReadSLeb128 (); break; case CounterValueType.MONO_COUNTER_UINT: case CounterValueType.MONO_COUNTER_ULONG: reader.ReadULeb128 (); break; case CounterValueType.MONO_COUNTER_DOUBLE: reader.ReadUInt64 (); break; default: throw new ArgumentException (String.Format("Unknown Counter Value type {0} [0x{0:x8}], for counter at index {3}, near byte {1} [0x{1:x8}] of {2}.", Type, reader.Position, reader.Length, Index)); } }
BufferHeader(LogFileReader reader) { BufId = reader.ReadInt32 (); if (BufId != BUF_ID) throw new IOException (string.Format ("Incorrect buffer id: 0x{0:X}", BufId)); Length = reader.ReadInt32 (); TimeBase = reader.ReadUInt64 (); PtrBase = reader.ReadInt64 (); ObjBase = reader.ReadInt64 (); ThreadId = reader.ReadInt64 (); MethodBase = reader.ReadInt64 (); }