public CounterValue(LogFileReader reader, ulong index) { Index = index; // Type = (uint)reader.ReadULeb128 (); Type = reader.ReadByte(); 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)); } }
public readonly long MethodBase; // base value for MonoMethod pointers 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(); }