public void InitializeAfterFork(Inferior inferior)
        {
            Lock();
            try {
                int[] indices = new int [index_hash.Count];
                index_hash.Keys.CopyTo(indices, 0);

                for (int i = 0; i < indices.Length; i++)
                {
                    int              idx   = indices [i];
                    BreakpointEntry  entry = (BreakpointEntry)index_hash [idx];
                    SourceBreakpoint bpt   = entry.Handle.Breakpoint as SourceBreakpoint;

                    if (!entry.Handle.Breakpoint.ThreadGroup.IsGlobal)
                    {
                        try {
                            inferior.RemoveBreakpoint(idx);
                        } catch (Exception ex) {
                            Report.Error("Removing breakpoint {0} failed: {1}",
                                         idx, ex);
                        }
                    }
                }
            } finally {
                Unlock();
            }
        }
示例#2
0
 private void breakpointList_DoubleClick(object sender, EventArgs e)
 {
     if (breakpointList.SelectedItem != null)
     {
         BreakpointEntry breakpoint = breakpointList.SelectedItem as BreakpointEntry;
         m_mainForm.GoTo(breakpoint.m_filename, breakpoint.m_lineNo);
     }
 }
        public BreakpointManager(BreakpointManager old)
        {
            Lock();

            index_hash = new Hashtable();
            _manager   = mono_debugger_breakpoint_manager_clone(old.Manager);

            foreach (int index in old.index_hash.Keys)
            {
                BreakpointEntry entry = (BreakpointEntry)old.index_hash [index];
                index_hash.Add(index, entry);
            }

            Unlock();
        }
        public void DomainUnload(Inferior inferior, int domain)
        {
            Lock();
            try {
                int[] indices = new int [index_hash.Count];
                index_hash.Keys.CopyTo(indices, 0);

                for (int i = 0; i < indices.Length; i++)
                {
                    BreakpointEntry entry = (BreakpointEntry)index_hash [indices [i]];
                    if (entry.Domain != domain)
                    {
                        continue;
                    }
                    inferior.RemoveBreakpoint(indices [i]);
                    index_hash.Remove(indices [i]);
                }
            } finally {
                Unlock();
            }
        }
            public override bool Equals(object obj)
            {
                BreakpointEntry entry = (BreakpointEntry)obj;

                return((entry.Handle == Handle) && (entry.Domain == Domain));
            }