Ejemplo n.º 1
0
 internal DbiModuleInfo(BitAccess bits, bool readStrings)
 {
     bits.ReadInt32(out opened);
     new DbiSecCon(bits);
     bits.ReadUInt16(out flags);
     bits.ReadInt16(out stream);
     bits.ReadInt32(out cbSyms);
     bits.ReadInt32(out cbOldLines);
     bits.ReadInt32(out cbLines);
     bits.ReadInt16(out files);
     bits.ReadInt16(out pad1);
     bits.ReadUInt32(out offsets);
     bits.ReadInt32(out niSource);
     bits.ReadInt32(out niCompiler);
     if (readStrings)
     {
         bits.ReadCString(out moduleName);
         bits.ReadCString(out objectName);
     }
     else
     {
         bits.SkipCString(out moduleName);
         bits.SkipCString(out objectName);
     }
     bits.Align(4);
     //if (opened != 0 || pad1 != 0) {
     //  throw new PdbException("Invalid DBI module. "+
     //                                 "(opened={0}, pad={1})", opened, pad1);
     //}
 }
Ejemplo n.º 2
0
        internal short stream; // 34..35

        #endregion Fields

        #region Constructors

        internal DbiModuleInfo(BitAccess bits, bool readStrings)
        {
            bits.ReadInt32(out opened);
              new DbiSecCon(bits);
              bits.ReadUInt16(out flags);
              bits.ReadInt16(out stream);
              bits.ReadInt32(out cbSyms);
              bits.ReadInt32(out cbOldLines);
              bits.ReadInt32(out cbLines);
              bits.ReadInt16(out files);
              bits.ReadInt16(out pad1);
              bits.ReadUInt32(out offsets);
              bits.ReadInt32(out niSource);
              bits.ReadInt32(out niCompiler);
              if (readStrings) {
            bits.ReadCString(out moduleName);
            bits.ReadCString(out objectName);
              } else {
            bits.SkipCString(out moduleName);
            bits.SkipCString(out objectName);
              }
              bits.Align(4);
              //if (opened != 0 || pad1 != 0) {
              //  throw new PdbException("Invalid DBI module. "+
              //                                 "(opened={0}, pad={1})", opened, pad1);
              //}
        }
Ejemplo n.º 3
0
 internal DbiSecCon(BitAccess bits)
 {
     bits.ReadInt16(out section);
     bits.ReadInt16(out pad1);
     bits.ReadInt32(out offset);
     bits.ReadInt32(out size);
     bits.ReadUInt32(out flags);
     bits.ReadInt16(out module);
     bits.ReadInt16(out pad2);
     bits.ReadUInt32(out dataCrc);
     bits.ReadUInt32(out relocCrc);
 }
Ejemplo n.º 4
0
 internal DbiSecCon(BitAccess bits)
 {
     bits.ReadInt16(out section);
     bits.ReadInt16(out pad1);
     bits.ReadInt32(out offset);
     bits.ReadInt32(out size);
     bits.ReadUInt32(out flags);
     bits.ReadInt16(out module);
     bits.ReadInt16(out pad2);
     bits.ReadUInt32(out dataCrc);
     bits.ReadUInt32(out relocCrc);
     //if (pad1 != 0 || pad2 != 0) {
     //  throw new PdbException("Invalid DBI section. "+
     //                                 "(pad1={0}, pad2={1})",
     //                         pad1, pad2);
     //}
 }
Ejemplo n.º 5
0
        internal int size; // 8..11

        #endregion Fields

        #region Constructors

        internal DbiSecCon(BitAccess bits)
        {
            bits.ReadInt16(out section);
              bits.ReadInt16(out pad1);
              bits.ReadInt32(out offset);
              bits.ReadInt32(out size);
              bits.ReadUInt32(out flags);
              bits.ReadInt16(out module);
              bits.ReadInt16(out pad2);
              bits.ReadUInt32(out dataCrc);
              bits.ReadUInt32(out relocCrc);
              //if (pad1 != 0 || pad2 != 0) {
              //  throw new PdbException("Invalid DBI section. "+
              //                                 "(pad1={0}, pad2={1})",
              //                         pad1, pad2);
              //}
        }
Ejemplo n.º 6
0
        internal ushort vers; // 14..15

        /// <summary>
        /// </summary>
        /// <param name="bits">
        /// </param>
        internal DbiHeader(BitAccess bits)
        {
            bits.ReadInt32(out this.sig);
            bits.ReadInt32(out this.ver);
            bits.ReadInt32(out this.age);
            bits.ReadInt16(out this.gssymStream);
            bits.ReadUInt16(out this.vers);
            bits.ReadInt16(out this.pssymStream);
            bits.ReadUInt16(out this.pdbver);
            bits.ReadInt16(out this.symrecStream);
            bits.ReadUInt16(out this.pdbver2);
            bits.ReadInt32(out this.gpmodiSize);
            bits.ReadInt32(out this.secconSize);
            bits.ReadInt32(out this.secmapSize);
            bits.ReadInt32(out this.filinfSize);
            bits.ReadInt32(out this.tsmapSize);
            bits.ReadInt32(out this.mfcIndex);
            bits.ReadInt32(out this.dbghdrSize);
            bits.ReadInt32(out this.ecinfoSize);
            bits.ReadUInt16(out this.flags);
            bits.ReadUInt16(out this.machine);
            bits.ReadInt32(out this.reserved);
        }
Ejemplo n.º 7
0
        internal ushort vers; // 14..15

        #endregion Fields

        #region Constructors

        internal DbiHeader(BitAccess bits)
        {
            bits.ReadInt32(out sig);
              bits.ReadInt32(out ver);
              bits.ReadInt32(out age);
              bits.ReadInt16(out gssymStream);
              bits.ReadUInt16(out vers);
              bits.ReadInt16(out pssymStream);
              bits.ReadUInt16(out pdbver);
              bits.ReadInt16(out symrecStream);
              bits.ReadUInt16(out pdbver2);
              bits.ReadInt32(out gpmodiSize);
              bits.ReadInt32(out secconSize);
              bits.ReadInt32(out secmapSize);
              bits.ReadInt32(out filinfSize);
              bits.ReadInt32(out tsmapSize);
              bits.ReadInt32(out mfcIndex);
              bits.ReadInt32(out dbghdrSize);
              bits.ReadInt32(out ecinfoSize);
              bits.ReadUInt16(out flags);
              bits.ReadUInt16(out machine);
              bits.ReadInt32(out reserved);
        }
Ejemplo n.º 8
0
 internal DbiHeader(BitAccess bits)
 {
     bits.ReadInt32(out sig);
     bits.ReadInt32(out ver);
     bits.ReadInt32(out age);
     bits.ReadInt16(out gssymStream);
     bits.ReadUInt16(out vers);
     bits.ReadInt16(out pssymStream);
     bits.ReadUInt16(out pdbver);
     bits.ReadInt16(out symrecStream);
     bits.ReadUInt16(out pdbver2);
     bits.ReadInt32(out gpmodiSize);
     bits.ReadInt32(out secconSize);
     bits.ReadInt32(out secmapSize);
     bits.ReadInt32(out filinfSize);
     bits.ReadInt32(out tsmapSize);
     bits.ReadInt32(out mfcIndex);
     bits.ReadInt32(out dbghdrSize);
     bits.ReadInt32(out ecinfoSize);
     bits.ReadUInt16(out flags);
     bits.ReadUInt16(out machine);
     bits.ReadInt32(out reserved);
 }
Ejemplo n.º 9
0
        internal PdbConstant(BitAccess bits)
        {
            uint token;

            bits.ReadUInt32(out token);
            Token = token;
            byte tag1;

            bits.ReadUInt8(out tag1);
            byte tag2;

            bits.ReadUInt8(out tag2);
            if (tag2 == 0)
            {
                Value = tag1;
            }
            else if (tag2 == 0x80)
            {
                switch (tag1)
                {
                case 0x00:     //sbyte
                    sbyte sb;
                    bits.ReadInt8(out sb);
                    Value = sb;
                    break;

                case 0x01:     //short
                    short s;
                    bits.ReadInt16(out s);
                    Value = s;
                    break;

                case 0x02:     //ushort
                    ushort us;
                    bits.ReadUInt16(out us);
                    Value = us;
                    break;

                case 0x03:     //int
                    int i;
                    bits.ReadInt32(out i);
                    Value = i;
                    break;

                case 0x04:     //uint
                    uint ui;
                    bits.ReadUInt32(out ui);
                    Value = ui;
                    break;

                case 0x05:     //float
                    Value = bits.ReadFloat();
                    break;

                case 0x06:     //double
                    Value = bits.ReadDouble();
                    break;

                case 0x09:     //long
                    long sl;
                    bits.ReadInt64(out sl);
                    Value = sl;
                    break;

                case 0x0a:     //ulong
                    ulong ul;
                    bits.ReadUInt64(out ul);
                    Value = ul;
                    break;

                case 0x10:     //string
                    string str;
                    bits.ReadBString(out str);
                    Value = str;
                    break;

                case 0x19:     //decimal
                    Value = bits.ReadDecimal();
                    break;
                }
            }

            bits.ReadCString(out string name);
            Name = name;
        }
Ejemplo n.º 10
0
        /// <summary>
        /// </summary>
        /// <param name="bits">
        /// </param>
        internal PdbConstant(BitAccess bits)
        {
            bits.ReadUInt32(out this.token);
            byte tag1;
            bits.ReadUInt8(out tag1);
            byte tag2;
            bits.ReadUInt8(out tag2);
            if (tag2 == 0)
            {
                this.value = tag1;
            }
            else if (tag2 == 0x80)
            {
                switch (tag1)
                {
                    case 0x01: // short
                        short s;
                        bits.ReadInt16(out s);
                        this.value = s;
                        break;
                    case 0x02: // ushort
                        ushort us;
                        bits.ReadUInt16(out us);
                        this.value = us;
                        break;
                    case 0x03: // int
                        int i;
                        bits.ReadInt32(out i);
                        this.value = i;
                        break;
                    case 0x04: // uint
                        uint ui;
                        bits.ReadUInt32(out ui);
                        this.value = ui;
                        break;
                    case 0x05: // float
                        this.value = bits.ReadFloat();
                        break;
                    case 0x06: // double
                        this.value = bits.ReadDouble();
                        break;
                    case 0x09: // long
                        long sl;
                        bits.ReadInt64(out sl);
                        this.value = sl;
                        break;
                    case 0x0a: // ulong
                        ulong ul;
                        bits.ReadUInt64(out ul);
                        this.value = ul;
                        break;
                    case 0x10: // string
                        string str;
                        bits.ReadBString(out str);
                        this.value = str;
                        break;
                    case 0x19: // decimal
                        this.value = bits.ReadDecimal();
                        break;
                    default:

                        // TODO: error
                        break;
                }
            }
            else
            {
                // TODO: error
            }

            bits.ReadCString(out this.name);
        }
Ejemplo n.º 11
0
        internal PdbConstant(BitAccess bits)
        {
            bits.ReadUInt32(out this.token);
            byte tag1;

            bits.ReadUInt8(out tag1);
            byte tag2;

            bits.ReadUInt8(out tag2);
            if (tag2 == 0)
            {
                this.value = tag1;
            }
            else if (tag2 == 0x80)
            {
                switch (tag1)
                {
                case 0x00: //sbyte
                    sbyte sb;
                    bits.ReadInt8(out sb);
                    this.value = sb;
                    break;

                case 0x01: //short
                    short s;
                    bits.ReadInt16(out s);
                    this.value = s;
                    break;

                case 0x02: //ushort
                    ushort us;
                    bits.ReadUInt16(out us);
                    this.value = us;
                    break;

                case 0x03: //int
                    int i;
                    bits.ReadInt32(out i);
                    this.value = i;
                    break;

                case 0x04: //uint
                    uint ui;
                    bits.ReadUInt32(out ui);
                    this.value = ui;
                    break;

                case 0x05: //float
                    this.value = bits.ReadFloat();
                    break;

                case 0x06: //double
                    this.value = bits.ReadDouble();
                    break;

                case 0x09: //long
                    long sl;
                    bits.ReadInt64(out sl);
                    this.value = sl;
                    break;

                case 0x0a: //ulong
                    ulong ul;
                    bits.ReadUInt64(out ul);
                    this.value = ul;
                    break;

                case 0x10: //string
                    string str;
                    bits.ReadBString(out str);
                    this.value = str;
                    break;

                case 0x19: //decimal
                    this.value = bits.ReadDecimal();
                    break;

                default:
                    //TODO: error
                    break;
                }
            }
            else
            {
                //TODO: error
            }
            bits.ReadCString(out name);
        }
Ejemplo n.º 12
0
 internal DbiModuleInfo(BitAccess bits, bool readStrings)
 {
     bits.ReadInt32(out opened);
     new DbiSecCon(bits);
     bits.ReadUInt16(out flags);
     bits.ReadInt16(out stream);
     bits.ReadInt32(out cbSyms);
     bits.ReadInt32(out cbOldLines);
     bits.ReadInt32(out cbLines);
     bits.ReadInt16(out files);
     bits.ReadInt16(out pad1);
     bits.ReadUInt32(out offsets);
     bits.ReadInt32(out niSource);
     bits.ReadInt32(out niCompiler);
     if (readStrings)
     {
         bits.ReadCString(out moduleName);
         bits.ReadCString(out objectName);
     }
     else
     {
         bits.SkipCString(out moduleName);
         bits.SkipCString(out objectName);
     }
     bits.Align(4);
 }
Ejemplo n.º 13
0
 internal DbiSecCon(BitAccess bits)
 {
     bits.ReadInt16(out section);
     bits.ReadInt16(out pad1);
     bits.ReadInt32(out offset);
     bits.ReadInt32(out size);
     bits.ReadUInt32(out flags);
     bits.ReadInt16(out module);
     bits.ReadInt16(out pad2);
     bits.ReadUInt32(out dataCrc);
     bits.ReadUInt32(out relocCrc);
 }
Ejemplo n.º 14
0
        internal ushort vers; // 14..15

        /// <summary>
        /// </summary>
        /// <param name="bits">
        /// </param>
        internal DbiHeader(BitAccess bits)
        {
            bits.ReadInt32(out this.sig);
            bits.ReadInt32(out this.ver);
            bits.ReadInt32(out this.age);
            bits.ReadInt16(out this.gssymStream);
            bits.ReadUInt16(out this.vers);
            bits.ReadInt16(out this.pssymStream);
            bits.ReadUInt16(out this.pdbver);
            bits.ReadInt16(out this.symrecStream);
            bits.ReadUInt16(out this.pdbver2);
            bits.ReadInt32(out this.gpmodiSize);
            bits.ReadInt32(out this.secconSize);
            bits.ReadInt32(out this.secmapSize);
            bits.ReadInt32(out this.filinfSize);
            bits.ReadInt32(out this.tsmapSize);
            bits.ReadInt32(out this.mfcIndex);
            bits.ReadInt32(out this.dbghdrSize);
            bits.ReadInt32(out this.ecinfoSize);
            bits.ReadUInt16(out this.flags);
            bits.ReadUInt16(out this.machine);
            bits.ReadInt32(out this.reserved);
        }