예제 #1
0
        public void DeleteBreakpoint(Breakpoint bp)
        {
            switch (bp.Type)
            {
            case MemoryBreakpointType.Execution:
                //if (ExecBps.ContainsKey(bp))
                ExecBps.Remove(bp);
                if (ExecBps.Count == 0)
                {
                    haveExecBps = false;
                }
                break;

            case MemoryBreakpointType.Read:
                //if (ReadBps.ContainsKey(bp))
                ReadBps.Remove(bp);
                if (ReadBps.Count == 0)
                {
                    haveReadBps = false;
                }
                break;

            case MemoryBreakpointType.Write:
                //if (WriteBps.ContainsKey(bp))
                WriteBps.Remove(bp);
                if (WriteBps.Count == 0)
                {
                    haveWriteBps = false;
                }
                break;
            }
        }
예제 #2
0
        public void DeactivateBreakpoint(Breakpoint bp)
        {
            switch (bp.Type)
            {
            case MemoryBreakpointType.Execution:
                if (ExecBps.ContainsKey(bp))
                {
                    ExecBps[bp] = false;
                }
                break;

            case MemoryBreakpointType.Read:
                if (ReadBps.ContainsKey(bp))
                {
                    ReadBps[bp] = false;
                }
                break;

            case MemoryBreakpointType.Write:
                if (WriteBps.ContainsKey(bp))
                {
                    WriteBps[bp] = false;
                }
                break;
            }
        }
예제 #3
0
        public void AddBreakpoint(Breakpoint bp, bool isActive)
        {
            bp.Address = (ushort)(bp.Address & 0x3FFF);
            switch (bp.Type)
            {
            case MemoryBreakpointType.Execution:
                haveExecBps = true;
                if (!ExecBps.ContainsKey(bp))
                {
                    ExecBps.Add(bp, isActive);
                }
                break;

            case MemoryBreakpointType.Read:
                haveReadBps = true;
                if (!ReadBps.ContainsKey(bp))
                {
                    ReadBps.Add(bp, isActive);
                }
                break;

            case MemoryBreakpointType.Write:
                haveWriteBps = true;
                if (!WriteBps.ContainsKey(bp))
                {
                    WriteBps.Add(bp, isActive);
                }
                break;
            }
        }
예제 #4
0
        public bool IsReadBreakpoint(Breakpoint bp)
        {
            bool isActive = false;

            return(ReadBps.TryGetValue(bp, out isActive) ? isActive : false);
        }