Example #1
0
        public void Write(PDBFile pdb, Stream stream)
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_REAL32);

            w.WriteSingle(Value);
            w.WriteHeader();
        }
Example #2
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_REAL64);

            w.WriteDouble(Value);
            w.WriteHeader();
        }
Example #3
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_INDEX);

            w.WriteIndexedType(Referenced);
            w.WriteHeader();
        }
Example #4
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_SHORT);

            w.WriteInt16(Value);
            w.WriteHeader();
        }
Example #5
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_UQUADWORD);

            w.WriteUInt64(Value);
            w.WriteHeader();
        }
Example #6
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_VARSTRING);

            w.WriteShortString(Value);
            w.WriteHeader();
        }
Example #7
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_ULONG);

            w.WriteUInt32(Value);
            w.WriteHeader();
        }
Example #8
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_VTSHAPE);

            w.WriteUInt16(NumberOfEntries);

            byte data = 0x00;

            for (int i = 0; i < NumberOfEntries; i++)
            {
                byte descr = (byte)Descriptors[i];

                switch (i % 2)
                {
                case 0:
                    data = (byte)(descr & 0xF);
                    break;

                case 1:
                    data = (byte)(((descr << 4) & 0xF) | data);
                    w.WriteByte(data);
                    break;
                }
            }

            w.WriteHeader();
        }
Example #9
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_CHAR);

            w.WriteByte(Value);
            w.WriteHeader();
        }
Example #10
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_MODIFIER_16t);

            w.Write <CVModifier>(Attributes);
            w.WriteIndexedType16(ModifiedType);
            w.WriteHeader();
        }
Example #11
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_VFUNCTAB);

            w.WriteUInt16(0x00);
            w.WriteIndexedType(PointerType);
            w.WriteHeader();
        }
Example #12
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_VFTPATH_16t);

            w.WriteUInt16(NumElements);
            w.WriteIndexedType16(Bases);
            w.WriteHeader();
        }
Example #13
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_MODIFIER);

            w.WriteIndexedType(ModifiedType);
            w.Write <CVModifier>(Flags);
            w.WriteHeader();
        }
Example #14
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_POINTER);

            w.WriteIndexedType(UnderlyingType);
            w.WriteUInt32((uint)Attributes);
            w.WriteHeader();
        }
Example #15
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_BCLASS);

            w.WriteUInt16((ushort)Attributes);
            w.WriteIndexedType(BaseClassType);
            w.WriteIndexedType(Offset);
            w.WriteHeader();
        }
Example #16
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_BITFIELD);

            w.WriteIndexedType(Type);
            w.WriteByte(Length);
            w.WriteByte(Position);
            w.WriteHeader();
        }
Example #17
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_NESTTYPE);

            w.WriteUInt16(0x00);
            w.WriteIndexedType(NestedTypeDef);
            w.WriteCString(Name);
            w.WriteHeader();
        }
Example #18
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_ENUMERATE);

            w.WriteUInt16((ushort)Attributes);
            w.WriteVaryingType(Value);
            w.WriteCString(FieldName);
            w.WriteHeader();
        }
Example #19
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_STMEMBER);

            w.WriteUInt16((ushort)Attributes);
            w.WriteIndexedType(TypeRecord);
            w.WriteCString(Name);
            w.WriteHeader();
        }
Example #20
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_METHOD);

            w.WriteUInt16(NumberOfOccurrences);
            w.WriteIndexedType(MethodListRecord);
            w.WriteCString(Name);
            w.WriteHeader();
        }
Example #21
0
        public void Write(PDBFile pdb, Stream stream)
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_UNION);

            w.WriteUInt16(NumberOfElements);
            w.Write <TypeProperties>(Properties);
            w.WriteIndexedType(FieldType);
            w.WriteVaryingType(StructSize);
            w.WriteCString(Name);
        }
Example #22
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(Leaves.LeafType.LF_ARRAY);

            w.WriteIndexedType(ElementType);
            w.WriteIndexedType(IndexingType);
            w.WriteVaryingType(Size);
            w.WriteCString(Name);
            w.WriteHeader();
        }
Example #23
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_MEMBER);

            w.WriteUInt16((ushort)Attributes);
            w.WriteIndexedType(FieldType);
            w.WriteVaryingType(Offset);
            w.WriteCString(Name);
            w.WriteHeader();
        }
Example #24
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_ENUM);

            w.WriteUInt16(NumElements);
            w.Write <TypeProperties>(Properties);
            w.WriteIndexedType(UnderlyingType);
            w.WriteIndexedType(FieldType);
            w.WriteCString(Name);
            w.WriteHeader();
        }
Example #25
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_FIELDLIST, false);

            foreach (LeafContainerBase lf in Fields)
            {
                lf.Write();
            }

            w.WriteHeader();
        }
Example #26
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_PROCEDURE);

            w.WriteIndexedType(ReturnValueType);
            w.Write <CallingConvention>(CallingConvention);
            w.WriteByte(0x00);
            w.WriteUInt16(NumberOfParameters);
            w.WriteIndexedType(ArgumentListType);
            w.WriteHeader();
        }
Example #27
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_IVBCLASS);

            w.WriteUInt16((ushort)Attributes);
            w.WriteIndexedType(VirtualBaseClassType);
            w.WriteIndexedType(VirtualBasePointerType);
            w.WriteVaryingType(OffsetFromAddress);
            w.WriteVaryingType(OffsetFromTable);
            w.WriteHeader();
        }
Example #28
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_CLASS);

            w.WriteUInt16(NumberOfElements);
            w.Write <TypeProperties>(FieldProperties);
            w.WriteIndexedType(FieldIndex);
            w.WriteIndexedType(VShapeTableType);
            w.WriteVaryingType(StructSize);
            w.WriteCString(Name);
            w.WriteHeader();
        }
Example #29
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_VFTABLE);

            w.WriteIndexedType(Type);
            w.WriteIndexedType(BaseVfTable);
            w.WriteUInt32(OffsetInObjectLayout);
            w.WriteUInt32(NamesSize);
            foreach (string name in Names)
            {
                w.WriteCString(name);
            }
            w.WriteHeader();
        }
Example #30
0
        public void Write(PDBFile pdb, Stream stream)
        {
            TypeDataWriter w = new TypeDataWriter(pdb, stream, LeafType.LF_ARGLIST);

            w.WriteUInt16(NumberOfArguments);
            w.WriteUInt16(0x00);

            foreach (ILeafContainer leaf in ArgumentTypes)
            {
                w.WriteIndexedType(leaf);
            }

            w.WriteLeafHeader();
        }