Mono.Cecil.Cil.PortablePdbWriter.GetDebugHeader C# (CSharp) Method

GetDebugHeader() public method

public GetDebugHeader ( ImageDebugDirectory &directory, byte &header ) : bool
directory ImageDebugDirectory
header byte
return bool
        public bool GetDebugHeader(out ImageDebugDirectory directory, out byte [] header)
        {
            if (IsEmbedded) {
                directory = new ImageDebugDirectory ();
                header = Empty<byte>.Array;
                return false;
            }

            directory = new ImageDebugDirectory () {
                MajorVersion = 256,
                MinorVersion = 20577,
                Type = 2,
            };

            var buffer = new ByteBuffer ();
            // RSDS
            buffer.WriteUInt32 (0x53445352);
            // Module ID
            buffer.WriteBytes (module.Mvid.ToByteArray ());
            // PDB Age
            buffer.WriteUInt32 (1);
            // PDB Path
            buffer.WriteBytes (System.Text.Encoding.UTF8.GetBytes (writer.BaseStream.GetFileName ()));
            buffer.WriteByte (0);

            header = new byte [buffer.length];
            Buffer.BlockCopy (buffer.buffer, 0, header, 0, buffer.length);
            directory.SizeOfData = header.Length;
            return true;
        }

Usage Example

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())
            }));
        }
All Usage Examples Of Mono.Cecil.Cil.PortablePdbWriter::GetDebugHeader