GetDebugHeader() public method

public GetDebugHeader ( ImageDebugDirectory &directory, byte &header ) : bool
directory ImageDebugDirectory
header byte
return bool
Esempio n. 1
0
        public ImageDebugHeader GetDebugHeader()
        {
            writer.Dispose();
            ImageDebugDirectory imageDebugDirectory = default(ImageDebugDirectory);

            imageDebugDirectory.Type = ImageDebugType.EmbeddedPortablePdb;
            ImageDebugDirectory directory          = imageDebugDirectory;
            MemoryStream        memoryStream       = new MemoryStream();
            BinaryStreamWriter  binaryStreamWriter = new BinaryStreamWriter(memoryStream);

            binaryStreamWriter.WriteByte(77);
            binaryStreamWriter.WriteByte(80);
            binaryStreamWriter.WriteByte(68);
            binaryStreamWriter.WriteByte(66);
            binaryStreamWriter.WriteInt32((int)stream.Length);
            stream.Position = 0L;
            using (DeflateStream destination = new DeflateStream(memoryStream, CompressionMode.Compress, true))
            {
                stream.CopyTo(destination);
            }
            directory.SizeOfData = (int)memoryStream.Length;
            return(new ImageDebugHeader(new ImageDebugHeaderEntry[2]
            {
                writer.GetDebugHeader().Entries[0],
                new ImageDebugHeaderEntry(directory, memoryStream.ToArray())
            }));
        }
Esempio n. 2
0
        public ImageDebugHeader GetDebugHeader()
        {
            writer.Dispose();

            var directory = new ImageDebugDirectory {
                Type         = ImageDebugType.EmbeddedPortablePdb,
                MajorVersion = 0x0100,
                MinorVersion = 0x0100,
            };

            var data = new MemoryStream();

            var w = new BinaryStreamWriter(data);

            w.WriteByte(0x4d);
            w.WriteByte(0x50);
            w.WriteByte(0x44);
            w.WriteByte(0x42);

            w.WriteInt32((int)stream.Length);

            stream.Position = 0;

            using (var compress_stream = new DeflateStream(data, CompressionMode.Compress, leaveOpen: true))
                stream.CopyTo(compress_stream);

            directory.SizeOfData = (int)data.Length;

            return(new ImageDebugHeader(new [] {
                writer.GetDebugHeader().Entries[0],
                new ImageDebugHeaderEntry(directory, data.ToArray())
            }));
        }
Esempio n. 3
0
        public ImageDebugHeader GetDebugHeader()
        {
            ImageDebugHeader pdbDebugHeader = writer.GetDebugHeader();

            var directory = new ImageDebugDirectory {
                Type         = ImageDebugType.EmbeddedPortablePdb,
                MajorVersion = 0x0100,
                MinorVersion = 0x0100,
            };

            var data = new MemoryStream();

            var w = new BinaryStreamWriter(data);

            w.WriteByte(0x4d);
            w.WriteByte(0x50);
            w.WriteByte(0x44);
            w.WriteByte(0x42);

            w.WriteInt32((int)stream.Length);

            stream.Position = 0;

            using (var compress_stream = new DeflateStream(data, CompressionMode.Compress, leaveOpen: true))
                stream.CopyTo(compress_stream);

            directory.SizeOfData = (int)data.Length;

            var debugHeaderEntries = new ImageDebugHeaderEntry [pdbDebugHeader.Entries.Length + 1];

            for (int i = 0; i < pdbDebugHeader.Entries.Length; i++)
            {
                debugHeaderEntries [i] = pdbDebugHeader.Entries [i];
            }
            debugHeaderEntries [debugHeaderEntries.Length - 1] = new ImageDebugHeaderEntry(directory, data.ToArray());

            return(new ImageDebugHeader(debugHeaderEntries));
        }