/// <summary> /// Write out the debug infro required for PDB files to the PE file. /// </summary> private void WriteDebugInfo() { if (pdbWriter != null) { // WINNT.h IMAGE_DEBUG_DIRECTORY WriteZeros(4); // Characteristics Write(dateStamp); // Date stamp WriteZeros(4); // Major Version, Minor Version Write(2); // Type (Code View???) Write(debugBytesSize); // Size of Data WriteZeros(4); // Address of Raw Data Write(text.Offset() + debugOffset + debugSize); // Pointer to Raw Data if (Diag.DiagOn) { Debug.WriteLine("Debug Bytes Offset: " + BaseStream.Length.ToString()); } // Remember where the debug bytes need to be written to debugBytesStartOffset = BaseStream.Length; // For now don't write the real debug bytes. // Just fill the space so we can come and write them later. // Write(debugBytes); WriteZeros((uint)debugBytesSize); WriteZeros(NumToAlign((uint)debugBytesSize, 4)); } }