// // IEnumerator interface // #region IEnumerator Members public bool MoveNext() { var a = new ICorDebugModule[1]; uint c = 0; int r = m_enum.Next((uint)a.Length, a, out c); if (r == 0 && c == 1) // S_OK && we got 1 new element { m_mod = new CorModule(a[0]); } else { m_mod = null; } return(m_mod != null); }
/// <summary> /// Apply an edit. (Edit and Continue feature) /// </summary> /// <param name="deltaMetadataFile">File containing the Metadata delta.</param> /// <param name="deltaILFile">File containing the IL delta.</param> /// <param name="deltaPdbFile">File containing the PDB delta.</param> /// <param name="editSourceFile">The edited source file. WARNING - this param may be removed in next release.</param> public void ApplyEdit(string deltaMetadataFile, string deltaILFile, string deltaPdbFile, string editSourceFile ) { if (SymReader == null && deltaPdbFile != null) { throw new MDbgException("Cannot update symbols on module without loaded symbols."); } // read arguments from files byte[] deltaMeta; using (FileStream dmetaFile = File.OpenRead(deltaMetadataFile)) { deltaMeta = new byte[dmetaFile.Length]; dmetaFile.Read(deltaMeta, 0, deltaMeta.Length); } byte[] deltaIL; using (FileStream dilFile = File.OpenRead(deltaILFile)) { deltaIL = new byte[dilFile.Length]; dilFile.Read(deltaIL, 0, deltaIL.Length); } CorModule.ApplyChanges(deltaMeta, deltaIL); if (deltaPdbFile != null) { // apply dpdb to the symbol store. ISymbolReader sr = SymReader; (sr as ISymbolReader2).UpdateSymbolStore(deltaPdbFile, null); } // save file name into of the edit if (m_editsSources == null) { Debug.Assert(EditsCounter == 0); // we don't have any edits m_editsSources = new ArrayList(); } m_editsSources.Add(editSourceFile); m_editsCounter++; }
public void Reset() { m_enum.Reset(); m_mod = null; }
internal CorActiveFunction(int ilOffset, CorFunction managedFunction, CorModule managedModule) { m_ilOffset = ilOffset; m_function = managedFunction; m_module = managedModule; }