예제 #1
0
        public Breakpoints(USBGecko UGecko, BPList UBPOut, MainForm UMainForm, Disassembly UDissAss,
                           //RichTextBox UDissBox, TextBox UClassicBox, ListBox conditionList, ExceptionHandler UExcHandler)
                           TextBox UDissBox, TextBox UClassicBox, ListBox conditionList, ExceptionHandler UExcHandler)
        {
            exceptionHandling = UExcHandler;
            gecko             = UGecko;
            bpOutput          = UBPOut;
            mainForm          = UMainForm;
            listSet           = false;
            disassembler      = UDissAss;
            dissBox           = UDissBox;
            classicBox        = UClassicBox;
            stepOverPossible  = false;

            changableRegs = new UInt32[40];

            regDialog = new RegisterDialog();

            PConditions = new BreakpointConditions(conditionList);

            for (int i = 0; i < 40; i++)
            {
                bpOutput.shortRegTextBox[i].Click += clickReg;
            }

            ShowFloatsInHex = false;
        }
예제 #2
0
        public void SetSRR0(uint address)
        {
            if (contextAddress == 0)
            {
                return;
            }
            if (ValidMemory.rangeCheck(address) != AddressType.Ex)
            {
                return;
            }


            changableRegs[BPList.regTextToID("SRR0")] = address;
            SendRegisters();
        }
예제 #3
0
        public void SetSRR0(UInt32 address)
        {
            if (gecko.status() != WiiStatus.Breakpoint)
            {
                return;
            }
            if (ValidMemory.rangeCheck(address) != AddressType.UncachedMem1)
            {
                return;
            }


            changableRegs[BPList.regTextToID("SRR0")] = address;
            SendRegisters();
        }
예제 #4
0
        public static BreakpointCondition FromString(String cond)
        {
            if (cond == String.Empty)
            {
                return(null);
            }
            String[] sep      = cond.Split(new char[] { ' ', ':' });
            int      register = Convert.ToInt32(BPList.regTextToID(sep[2]));

            if (sep[2] == "VoA")
            {
                register = BPList.longRegNames.Length;
            }

            uint value;

            if (!(GlobalFunctions.tryToHex(sep[4], out value)))
            {
                return(null);
            }
            uint group = Convert.ToUInt32(sep[0]);
            BreakpointComparison comp;

            switch (sep[3])
            {
            case "==":
                comp = BreakpointComparison.Equal; break;

            case "!=":
                comp = BreakpointComparison.NotEqual; break;

            case ">":
                comp = BreakpointComparison.Greater; break;

            case ">=":
                comp = BreakpointComparison.GreaterEqual; break;

            case "<":
                comp = BreakpointComparison.Lower; break;

            case "<=":
                comp = BreakpointComparison.LowerEqual; break;

            default:
                comp = BreakpointComparison.Equal; break;
            }
            return(new BreakpointCondition(register, value, comp, group));
        }
예제 #5
0
        public Breakpoints(TCPGecko UGecko, BPList UBPOut, MainForm UMainForm, Disassembly UDissAss,
            //RichTextBox UDissBox, TextBox UClassicBox, ListBox conditionList, ExceptionHandler UExcHandler)
            TextBox UDissBox, TextBox UClassicBox, ListBox conditionList, ExceptionHandler UExcHandler)
        {
            exceptionHandling = UExcHandler;
            gecko = UGecko;
            bpOutput = UBPOut;
            mainForm = UMainForm;
            listSet = false;
            disassembler = UDissAss;
            dissBox = UDissBox;
            classicBox = UClassicBox;
            stepOverPossible = false;

            changableRegs = new UInt32[40];

            regDialog = new RegisterDialog();

            PConditions = new BreakpointConditions(conditionList);

            for (int i = 0; i < 40; i++)
            {
                bpOutput.shortRegTextBox[i].Click += clickReg;
            }

            ShowFloatsInHex = false;
        }