Example #1
0
        private Breakpoint GetCurrentLineBreakpoint()
        {
            AddressTypeInfo addressInfo = GetAddressInfo(ctrlCodeViewer.SelectedLine);

            if (addressInfo.Address >= 0)
            {
                int relativeAddress = InteropEmu.DebugGetRelativeAddress((uint)addressInfo.Address, addressInfo.Type);
                return(BreakpointManager.GetMatchingBreakpoint(relativeAddress, addressInfo));
            }
            return(null);
        }
Example #2
0
 private void mnuAddBreakpoint_Click(object sender, EventArgs e)
 {
     if (lstLabels.SelectedItems.Count > 0)
     {
         CodeLabel label = (CodeLabel)lstLabels.SelectedItems[0].SubItems[1].Tag;
         if (label.AddressType == AddressType.PrgRom)
         {
             BreakpointManager.AddBreakpoint(new Breakpoint()
             {
                 BreakOnExec       = true,
                 BreakOnRead       = true,
                 BreakOnWrite      = false,
                 Address           = label.Address,
                 StartAddress      = label.Address,
                 EndAddress        = label.Address,
                 AddressType       = BreakpointAddressType.SingleAddress,
                 IsAbsoluteAddress = true
             });
         }
         else
         {
             int address = label.GetRelativeAddress();
             if (address >= 0)
             {
                 if (BreakpointManager.GetMatchingBreakpoint(address) == null)
                 {
                     BreakpointManager.AddBreakpoint(new Breakpoint()
                     {
                         BreakOnExec       = true,
                         BreakOnRead       = true,
                         BreakOnWrite      = true,
                         Address           = (UInt32)address,
                         StartAddress      = (UInt32)address,
                         EndAddress        = (UInt32)address,
                         AddressType       = BreakpointAddressType.SingleAddress,
                         IsAbsoluteAddress = true
                     });
                 }
             }
         }
     }
 }
Example #3
0
        private void mnuEditBreakpoint_Click(object sender, EventArgs e)
        {
            UInt32 startAddress = (UInt32)SelectionStartAddress;
            UInt32 endAddress   = (UInt32)SelectionEndAddress;
            BreakpointAddressType addressType = startAddress == endAddress ? BreakpointAddressType.SingleAddress : BreakpointAddressType.AddressRange;

            Breakpoint bp = BreakpointManager.GetMatchingBreakpoint(startAddress, endAddress, this._memoryType);

            if (bp == null)
            {
                bp = new Breakpoint()
                {
                    Address = startAddress, MemoryType = this._memoryType, StartAddress = startAddress, EndAddress = endAddress, AddressType = addressType, BreakOnWrite = true, BreakOnRead = true
                };
                if (bp.IsCpuBreakpoint)
                {
                    bp.BreakOnExec = true;
                }
            }
            BreakpointManager.EditBreakpoint(bp);
        }
Example #4
0
 private void mnuAddBreakpoint_Click(object sender, EventArgs e)
 {
     if (lstLabels.SelectedIndices.Count > 0)
     {
         CodeLabel label = (CodeLabel)GetSelectedItem().SubItems[1].Tag;
         if (label.AddressType == AddressType.InternalRam || label.AddressType == AddressType.Register)
         {
             AddressTypeInfo info = new AddressTypeInfo();
             InteropEmu.DebugGetAbsoluteAddressAndType(label.Address, info);
             if (BreakpointManager.GetMatchingBreakpoint((Int32)label.Address, info) == null)
             {
                 BreakpointManager.AddBreakpoint(new Breakpoint()
                 {
                     MemoryType   = DebugMemoryType.CpuMemory,
                     BreakOnExec  = true,
                     BreakOnRead  = true,
                     BreakOnWrite = true,
                     Address      = label.Address,
                     StartAddress = label.Address,
                     EndAddress   = label.Address,
                     AddressType  = BreakpointAddressType.SingleAddress
                 });
             }
         }
         else
         {
             BreakpointManager.AddBreakpoint(new Breakpoint()
             {
                 MemoryType   = DebugMemoryType.PrgRom,
                 BreakOnExec  = true,
                 BreakOnRead  = true,
                 BreakOnWrite = false,
                 Address      = label.Address,
                 StartAddress = label.Address,
                 EndAddress   = label.Address,
                 AddressType  = BreakpointAddressType.SingleAddress
             });
         }
     }
 }