Mono.Cecil.Pdb.SymWriter.GetDebugInfo C# (CSharp) Method

GetDebugInfo() public method

public GetDebugInfo ( ImageDebugDirectory &idd ) : byte[]
idd ImageDebugDirectory
return byte[]
        public byte[] GetDebugInfo(out ImageDebugDirectory idd)
        {
            int size;

            // get size of debug info
            m_writer.GetDebugInfo (out idd, 0, out size, null);

            byte[] debug_info = new byte[size];
            m_writer.GetDebugInfo (out idd, size, out size, debug_info);

            return debug_info;
        }

Usage Example

Exemplo n.º 1
0
        void Patch()
        {
            // patch debug info in PE file to match PDB
            //try
            //{
            byte[] DebugInfo = m_writer.GetDebugInfo();
            m_writer.Close();

            RVA  debugHeaderRVA = m_module.Image.PEOptionalHeader.DataDirectories.Debug.VirtualAddress;
            long debugHeaderPos = m_module.Image.ResolveVirtualAddress(debugHeaderRVA);
            uint sizeUntilData  = 0x1c;    // copied from ImageWriter
            long debugDataPos   = debugHeaderPos + sizeUntilData;

            using (FileStream fs = new FileStream(m_assembly, FileMode.Open, FileAccess.Write))
            {
                BinaryWriter writer = new BinaryWriter(fs);
                writer.BaseStream.Position = debugDataPos;
                writer.Write(DebugInfo);
            }
            //  }
            //  catch (Exception ex)
            //  {
            //      System.Diagnostics.Debug.WriteLine("in PdbWriter.Patch: " + ex.Message);
            //  }
        }
All Usage Examples Of Mono.Cecil.Pdb.SymWriter::GetDebugInfo