Example #1
0
        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));
            }
        }
Example #2
0
        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();
        }