예제 #1
0
		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;
		}
예제 #2
0
        /*
        uint Magic = 0x53445352;
        Guid Signature;
        uint Age;
        string FileName;
         */
        public bool ProcessDebugHeader(ImageDebugDirectory directory, byte [] header)
        {
            if (header.Length < 24)
                return false;

            var magic = ReadInt32 (header, 0);
            if (magic != 0x53445352)
                return false;

            var guid_bytes = new byte [16];
            Buffer.BlockCopy (header, 4, guid_bytes, 0, 16);

            this.guid = new Guid (guid_bytes);
            this.age = ReadInt32 (header, 20);

            return PopulateFunctions ();
        }
예제 #3
0
파일: PdbReader.cs 프로젝트: jbevain/cecil
        /*
        uint Magic = 0x53445352;
        Guid Signature;
        uint Age;
        string FileName;
         */
        public bool ProcessDebugHeader(ImageDebugDirectory directory, byte [] header)
        {
            if (directory.Type != 2) //IMAGE_DEBUG_TYPE_CODEVIEW
                return false;
            if (directory.MajorVersion != 0 || directory.MinorVersion != 0)
                return false;

            if (header.Length < 24)
                return false;

            var magic = ReadInt32 (header, 0);
            if (magic != 0x53445352)
                return false;

            var guid_bytes = new byte [16];
            Buffer.BlockCopy (header, 4, guid_bytes, 0, 16);

            this.guid = new Guid (guid_bytes);
            this.age = ReadInt32 (header, 20);

            return PopulateFunctions ();
        }
예제 #4
0
파일: PdbWriter.cs 프로젝트: atykhyy/cecil
 public bool GetDebugHeader(out ImageDebugDirectory directory, out byte [] header)
 {
     header = writer.GetDebugInfo (out directory);
     return true;
 }
예제 #5
0
 public bool ProcessDebugHeader(ImageDebugDirectory directory, byte[] header)
 {
     return true;
 }
예제 #6
0
 public bool ProcessDebugHeader(ImageDebugDirectory directory, byte [] header)
 {
     return(symbol_file.Guid == module.Mvid);
 }
예제 #7
0
 public bool GetDebugHeader(out ImageDebugDirectory directory, out byte [] header)
 {
     header = writer.GetDebugInfo(out directory);
     return(true);
 }
예제 #8
0
 public void GetDebugInfoWithPadding(ref ImageDebugDirectory debugDirectory, uint dataCount, out uint dataCountPtr, IntPtr data)
 {
     GetDebugInfo(ref debugDirectory, dataCount, out dataCountPtr, data);
 }
예제 #9
0
 public bool GetDebugHeader(out ImageDebugDirectory directory, out byte [] header)
 {
     directory = new ImageDebugDirectory();
     header    = empty_header;
     return(false);
 }
예제 #10
0
 public PdbReaderContext(IPEImage peImage, PdbReaderOptions options)
 {
     this.peImage     = peImage;
     Options          = options;
     codeViewDebugDir = TryGetDebugDirectoryEntry(peImage, ImageDebugType.CodeView);
 }