Exemple #1
0
        void ReadFunctions(IImageStream stream)
        {
            if (stream.ReadUInt32() != 4)
            {
                throw new PdbException("Invalid signature");
            }

            while (stream.Position < stream.Length)
            {
                var size  = stream.ReadUInt16();
                var begin = stream.Position;
                var end   = begin + size;

                var type = (SymbolType)stream.ReadUInt16();
                switch (type)
                {
                case SymbolType.S_GMANPROC:
                case SymbolType.S_LMANPROC:
                    var func = new DbiFunction();
                    func.Read(stream, end);
                    Functions.Add(func);
                    break;

                default:
                    stream.Position = end;
                    break;
                }
            }
        }
Exemple #2
0
        void ReadFunctions(DataReader reader)
        {
            if (reader.ReadUInt32() != 4)
            {
                throw new PdbException("Invalid signature");
            }

            while (reader.Position < reader.Length)
            {
                var size  = reader.ReadUInt16();
                var begin = reader.Position;
                var end   = begin + size;

                var type = (SymbolType)reader.ReadUInt16();
                switch (type)
                {
                case SymbolType.S_GMANPROC:
                case SymbolType.S_LMANPROC:
                    var func = new DbiFunction();
                    func.Read(ref reader, end);
                    Functions.Add(func);
                    break;

                default:
                    reader.Position = end;
                    break;
                }
            }
        }
Exemple #3
0
		void ReadFunctions(IImageStream stream) {
			if (stream.ReadUInt32() != 4)
				throw new PdbException("Invalid signature");

			while (stream.Position < stream.Length) {
				var size = stream.ReadUInt16();
				var begin = stream.Position;
				var end = begin + size;

				var type = (SymbolType)stream.ReadUInt16();
				switch (type) {
					case SymbolType.S_GMANPROC:
					case SymbolType.S_LMANPROC:
						var func = new DbiFunction();
						func.Read(stream, end);
						Functions.Add(func);
						break;
					default:
						stream.Position = end;
						break;
				}
			}
		}