예제 #1
0
        public WabbitcodeDebugger(string outputFile)
        {
            _disposed = false;

            _debuggerService = DependencyFactory.Resolve <IDebuggerService>();
            _fileService     = DependencyFactory.Resolve <IFileService>();
            _symbolService   = DependencyFactory.Resolve <ISymbolService>();

            WabbitcodeBreakpointManager.OnBreakpointAdded   += WabbitcodeBreakpointManager_OnBreakpointAdded;
            WabbitcodeBreakpointManager.OnBreakpointRemoved += WabbitcodeBreakpointManager_OnBreakpointRemoved;

            Debug.WriteLine("Creating wabbitemu debugger");
            _debugger = new WabbitemuDebugger();
            Debug.WriteLine("Loading file " + outputFile);
            _debugger.LoadFile(outputFile);
            _debugger.Visible       = true;
            _debugger.OnBreakpoint += BreakpointHit;
            _debugger.OnClose      += DebuggerOnClose;

            CurrentDebuggingFile = outputFile;
            IsAnApp            = outputFile.EndsWith(".8xk");
            _memoryAllocations = new List <KeyValuePair <ushort, ushort> >();
            CallStack          = new Stack <CallStackEntry>();
            MachineStack       = new Stack <StackEntry>();
            _oldSp             = IsAnApp ? TopStackApp : (ushort)0xFFFF;
            SetupInternalBreakpoints();
        }
예제 #2
0
        public DebugToolBar()
        {
            AllowItemReorder = true;
            GripStyle        = ToolStripGripStyle.Hidden;
            Items.AddRange(new ToolStripItem[]
            {
                _runDebuggerToolButton,
                _pauseToolButton,
                _stopDebugToolButton,
                _restartToolStripButton,
                _toolStripSeparator1,
                _gotoCurrentToolButton,
                _stepToolButton,
                _stepOverToolButton,
                _stepOutToolButton
            });
            RenderMode = ToolStripRenderMode.System;
            GripStyle  = ToolStripGripStyle.Visible;

            _runDebuggerToolButton.Click  += runDebuggerToolButton_Click;
            _pauseToolButton.Click        += pauseToolButton_Click;
            _stopDebugToolButton.Click    += stopDebugToolButton_Click;
            _restartToolStripButton.Click += restartToolStripButton_Click;
            _gotoCurrentToolButton.Click  += gotoCurrentToolButton_Click;
            _stepToolButton.Click         += stepToolButton_Click;
            _stepOverToolButton.Click     += stepOverToolButton_Click;
            _stepOutToolButton.Click      += stepOutToolButton_Click;

            _debuggerService = DependencyFactory.Resolve <IDebuggerService>();
            _debuggerService.OnDebuggingStarted += DebuggerService_OnDebuggingStarted;
            _debuggerService.OnDebuggingEnded   += DebuggerService_OnDebuggingEnded;
        }
예제 #3
0
 public BuildAction()
 {
     _assemblerService = DependencyFactory.Resolve <IAssemblerService>();
     _debuggerService  = DependencyFactory.Resolve <IDebuggerService>();
     _projectService   = DependencyFactory.Resolve <IProjectService>();
     _statusBarService = DependencyFactory.Resolve <IStatusBarService>();
 }
 public ChildTrackingVariableRowModel(IDebuggerService debuggerService, VariableDisplayManager variableDisplayManager,
                                      TrackingVariableRowModel parent, int offset)
     : base(debuggerService, variableDisplayManager)
 {
     _offset = offset;
     _parent = parent;
 }
예제 #5
0
		public NUnitTestDebugger(IDebuggerService debuggerService,
			IMessageService messageService,
			ITestResultsReader testResultsReader,
			UnitTestingOptions options)
			: base(debuggerService, messageService, testResultsReader)
		{
			this.options = options;
		}
 public RunScriptingConsoleApplicationCommand(IScriptingWorkbench workbench,
                                              IDebuggerService debugger,
                                              ScriptingConsoleApplication scriptingConsoleApplication)
 {
     this.workbench = workbench;
     this.debugger  = debugger;
     this.scriptingConsoleApplication = scriptingConsoleApplication;
 }
예제 #7
0
 public NUnitTestDebugger(IDebuggerService debuggerService,
                          IMessageService messageService,
                          ITestResultsReader testResultsReader,
                          UnitTestingOptions options)
     : base(debuggerService, messageService, testResultsReader)
 {
     this.options = options;
 }
		public RunScriptingConsoleApplicationCommand(IScriptingWorkbench workbench, 
			IDebuggerService debugger,
			ScriptingConsoleApplication scriptingConsoleApplication)
		{
			this.workbench = workbench;
			this.debugger = debugger;
			this.scriptingConsoleApplication = scriptingConsoleApplication;
		}
예제 #9
0
        public StackViewer()
        {
            InitializeComponent();

            IDebuggerService debuggerService = DependencyFactory.Resolve <IDebuggerService>();

            debuggerService.OnDebuggingStarted += mainForm_OnDebuggingStarted;
            debuggerService.OnDebuggingEnded   += mainForm_OnDebuggingEnded;
        }
예제 #10
0
        void IVariableLocator.Hydrate(IDebuggerService process)
        {
            if (_variables != null)
            {
                return;
            }
            var variables = process.GetEvaluatedVariables(_expression, _threadId, _stackFrameIndex, _path);

            _variables = variables;
        }
        public TestDebuggerBase(IDebuggerService debuggerService,
                                IMessageService messageService,
                                ITestResultsReader testResultsReader)
        {
            this.debugger          = debuggerService;
            this.messageService    = messageService;
            this.testResultsReader = testResultsReader;

            testResultsReader.TestFinished += OnTestFinished;
        }
예제 #12
0
        void IVariableLocator.Hydrate(IDebuggerService process)
        {
            if (Variables != null)
            {
                return;
            }
            var variables = process.GetVariables(1, Index, new int[0]);

            Variables = variables;
        }
예제 #13
0
		public TestDebuggerBase(IDebuggerService debuggerService,
			IMessageService messageService,
			ITestResultsReader testResultsReader)
		{
			this.debugger = debuggerService;
			this.messageService = messageService;
			this.testResultsReader = testResultsReader;
			
			testResultsReader.TestFinished += OnTestFinished;
		}
예제 #14
0
        private MapFileEditor()
        {
            InitializeComponent();

            _debuggerService = DependencyFactory.Resolve <IDebuggerService>();
            _symbolService   = DependencyFactory.Resolve <ISymbolService>();

            _debuggerService.OnDebuggingStarted += DebuggerService_OnDebuggingStarted;
            _debuggerService.OnDebuggingEnded   += DebuggerService_OnDebuggingEnded;
        }
        public TrackingVariableRowModel(IDebuggerService debuggerService, VariableDisplayManager variableDisplayManager)
        {
            _debuggerService        = debuggerService;
            _variableDisplayManager = variableDisplayManager;
            DisplayController       = variableDisplayManager.DefaultController;
            Debugger = _debuggerService.CurrentDebugger;

            _debuggerService.OnDebuggingStarted += DebuggerService_OnDebuggingStarted;
            _debuggerService.OnDebuggingEnded   += DebuggerService_OnDebuggingEnded;
        }
예제 #16
0
        void IVariableLocator.Hydrate(IDebuggerService process)
        {
            if (_variables != null)
            {
                return;
            }
            var variables = process.GetVariables(_stackFrameIndex, _path);

            _variables = variables;
        }
 public DefaultDebugController(ICommunicationServer ipcServer,
                               IDebuggerService debugger,
                               IDebugEventListener callbackService,
                               ThreadManager threadManager,
                               IBreakpointManager breakpointManager)
 {
     _server           = ipcServer;
     _debugger         = debugger;
     _callbackService  = callbackService;
     _threadManager    = threadManager;
     BreakpointManager = breakpointManager;
 }
예제 #18
0
        public TrackingWindow()
        {
            InitializeComponent();

            _debuggerService = DependencyFactory.Resolve <IDebuggerService>();
            _debuggerService.OnDebuggingStarted += DebuggerService_OnDebuggingStarted;
            _debuggerService.OnDebuggingEnded   += DebuggerService_OnDebuggingEnded;

            _model = new TrackingTreeModel();
            AddEmptyRow();
            variablesDataView.Model = _model;
            EnablePanel(false);
        }
예제 #19
0
        private void Terminate()
        {
            if (!_terminated)
            {
                // wait until we've seen the end of stdout and stderr
                for (int i = 0; i < 100 && (_stdoutEOF == false || _stderrEOF == false); i++)
                {
                    System.Threading.Thread.Sleep(100);
                }

                _terminated = true;
                _process    = null;
                _debugger   = null;
            }
        }
예제 #20
0
        public DebugPanel()
        {
            InitializeComponent();

            afBox.ContextMenu  = contextMenu1;
            afpBox.ContextMenu = contextMenu1;
            bcBox.ContextMenu  = contextMenu1;
            bcpBox.ContextMenu = contextMenu1;
            deBox.ContextMenu  = contextMenu1;
            depBox.ContextMenu = contextMenu1;
            hlBox.ContextMenu  = contextMenu1;
            hlpBox.ContextMenu = contextMenu1;
            ixBox.ContextMenu  = contextMenu1;
            iyBox.ContextMenu  = contextMenu1;
            pcBox.ContextMenu  = contextMenu1;
            spBox.ContextMenu  = contextMenu1;
            IDebuggerService debuggerService = DependencyFactory.Resolve <IDebuggerService>();

            debuggerService.OnDebuggingStarted += DebuggerService_OnDebuggingStarted;
        }
        public EditorContextMenu(WabbitcodeTextEditor editor, IDebuggerService debuggerService,
                                 IParserService parserService, IProjectService projectService)
        {
            var refactorContext = new MenuItem("Refactor", new[] { _renameContext, _extractMethodContext });

            MenuItems.AddRange(new[]
            {
                _cutContext,
                _copyContext,
                _pasteContext,
                _separator1,
                refactorContext,
                _findRefContext,
                _separator2,
                _selectAllContext,
                _setNextStateMenuItem,
                _fixCaseContext,
                _gotoButton
            });

            _cutContext.Click           += cutContext_Click;
            _copyContext.Click          += copyContext_Click;
            _pasteContext.Click         += pasteContext_Click;
            _selectAllContext.Click     += selectAllContext_Click;
            _setNextStateMenuItem.Click += setNextStateMenuItem_Click;
            _fixCaseContext.Click       += fixCaseContext_Click;
            _gotoButton.Click           += gotoButton_Click;
            _gotoButton.Shortcut         = Shortcut.F12;

            Popup += contextMenu_Popup;

            _editor          = editor;
            _debuggerService = debuggerService;
            _parserService   = parserService;
            _projectService  = projectService;
        }
예제 #22
0
 public StartDebuggerAction()
 {
     _debuggerService = DependencyFactory.Resolve <IDebuggerService>();
     _buildAction     = new BuildAction();
 }
예제 #23
0
 public SetNextStatementAction()
 {
     _dockingService  = DependencyFactory.Resolve <IDockingService>();
     _debuggerService = DependencyFactory.Resolve <IDebuggerService>();
 }
예제 #24
0
 public StepOutDebuggerAction()
 {
     _debuggerService = DependencyFactory.Resolve <IDebuggerService>();
 }
예제 #25
0
 public ExpressionEvaluator()
 {
     _symbolService   = DependencyFactory.Resolve <ISymbolService>();
     _debuggerService = DependencyFactory.Resolve <IDebuggerService>();
 }
예제 #26
0
        public MainMenuStrip()
        {
            Items.AddRange(new ToolStripItem[]
            {
                _fileMenuItem,
                _editMenuItem,
                _viewMenuItem,
                _refactorMenuItem,
                _projectMenuItem,
                _buildMenuItem,
                _debugMenuItem,
                _macrosMenuItem,
                _windowMenuItem,
                _helpMenuItem
            });

            LayoutStyle = ToolStripLayoutStyle.Flow;

            _debuggerService  = DependencyFactory.Resolve <IDebuggerService>();
            _dockingService   = DependencyFactory.Resolve <IDockingService>();
            _projectService   = DependencyFactory.Resolve <IProjectService>();
            _statusBarService = DependencyFactory.Resolve <IStatusBarService>();
            _toolBarService   = DependencyFactory.Resolve <IToolBarService>();
            EnableDocumentMenus();

            _debuggerService.OnDebuggingStarted        += DebuggerService_OnDebuggingStarted;
            _debuggerService.OnDebuggingEnded          += DebuggerService_OnDebuggingEnded;
            _dockingService.ActiveDocumentChanged      += DockingServiceActiveDocumentChanged;
            _projectService.ProjectOpened              += ProjectService_OnProjectOpened;
            _projectService.ProjectClosed              += ProjectService_OnProjectClosed;
            _toolBarService.OnToolBarVisibilityChanged += ToolBarService_OnToolBarVisibilityChanged;
            _toolBarService.OnToolbarRegistered        += ToolBarService_OnToolbarRegistered;
            ToolWindow.OnDockStateChanged              += ToolWindow_OnDockStateChanged;

            UndoMenuItem.Click                += undoMenuItem_Click;
            RedoMenuItem.Click                += redoMenuItem_Click;
            CutMenuItem.Click                 += cutMenuItem_Click;
            CopyMenuItem.Click                += copyMenuItem_Click;
            PasteMenuItem.Click               += pasteMenuItem_Click;
            SelectAllMenuItem.Click           += selectAllMenuItem_Click;
            FindMenuItem.Click                += findMenuItem_Click;
            ReplaceMenuItem.Click             += replaceMenuItem_Click;
            FindInFilesMenuItem.Click         += findInFilesMenuItem_Click;
            ReplaceInFilesMenuItem.Click      += replaceInFilesMenuItem_Click;
            FindAllRefsMenuItem.Click         += findAllRefsMenuItem_Click;
            MakeUpperMenuItem.Click           += makeUpperMenuItem_Click;
            MakeLowerMenuItem.Click           += makeLowerMenuItem_Click;
            InvertCaseMenuItem.Click          += invertCaseMenuItem_Click;
            SentenceCaseMenuItem.Click        += sentenceCaseMenuItem_Click;
            FormatDocMenuItem.Click           += formatDocMenuItem_Click;
            ToggleBookmarkMenuItem.Click      += toggleBookmarkMenuItem_Click;
            NextBookmarkMenuItem.Click        += nextBookmarkMenuItem_Click;
            PrevBookmarkMenuItem.Click        += prevBookmarkMenuItem_Click;
            ConvertSpacesToTabsMenuItem.Click += convertSpacesToTabsMenuItem_Click;
            GLineMenuItem.Click               += gLineMenuItem_Click;
            GSymbolMenuItem.Click             += gLabelMenuItem_Click;
            PrefsMenuItem.Click               += prefsMenuItem_Click;

            LabelListMenuItem.Click    += panelMenuItem_Click;
            ProjViewMenuItem.Click     += panelMenuItem_Click;
            MacroManagerMenuItem.Click += panelMenuItem_Click;
            OutputWindowMenuItem.Click += panelMenuItem_Click;
            ErrorListMenuItem.Click    += panelMenuItem_Click;
            FindResultsMenuItem.Click  += panelMenuItem_Click;

            DebugPanelMenuItem.Click   += panelMenuItem_Click;
            CallStackMenuItem.Click    += panelMenuItem_Click;
            StackViewerMenuItem.Click  += panelMenuItem_Click;
            VarTrackMenuItem.Click     += panelMenuItem_Click;
            BreakManagerMenuItem.Click += panelMenuItem_Click;

            StatusBarMenuItem.Click += statusBarMenuItem_Click;

            RenameMenuItem.Click        += renameMenuItem_Click;
            ExtractMethodMenuItem.Click += extractMethodMenuItem_Click;

            AddNewFileMenuItem.Click     += addNewFileMenuItem_Click;
            ExistingFileMenuItem.Click   += existingFileMenuItem_Click;
            BuildOrderButton.Click       += buildOrderButton_Click;
            IncludeDirProjMenuItem.Click += includeDirButton_Click;
            CloseProjMenuItem.Click      += closeProjMenuItem_Click;

            BuildProjectMenuItem.Click += buildMenuItem_Click;

            StartDebugMenuItem.Click        += startDebugMenuItem_Click;
            StartWithoutDebugMenuItem.Click += startWithoutDebugMenuItem_Click;
            StopDebugMenuItem.Click         += stopDebugMenuItem_Click;
            RunMenuItem.Click      += runMenuItem_Click;
            StepMenuItem.Click     += stepMenuItem_Click;
            StepOverMenuItem.Click += stepOverMenuItem_Click;
            StepOutMenuItem.Click  += stepOutMenuItem_Click;

            NewBreakpointMenuItem.Click    += newBreakpointMenuItem_Click;
            ToggleBreakpointMenuItem.Click += toggleBreakpointMenuItem_Click;


            UpdateMenuItem.Click += updateMenuItem_Click;
            AboutMenuItem.Click  += aboutMenuItem_Click;

            foreach (string file in GetRecentFiles())
            {
                string fileCopy = file;
                AddRecentItem(fileCopy);
            }
        }
예제 #27
0
 public void SetConnection(IDebuggerService service)
 {
     _debugger = service;
 }