/// <summary> /// /// </summary> private void flashInterface_BreakpointEvent(object sender) { Location loc = FlashInterface.getCurrentLocation(); if (PluginMain.breakPointManager.ShouldBreak(loc.getFile(), loc.getLine())) { UpdateUI(DebuggerState.BreakHalt); } else { FlashInterface.StepResume(); } }
/// <summary> /// /// </summary> private void flashInterface_BreakpointEvent(object sender) { Location loc = FlashInterface.getCurrentLocation(); // todo checking for loc here, but should handle swfloaded case and wait with breakpoint event if (loc != null && PluginMain.breakPointManager.ShouldBreak(loc.getFile(), loc.getLine())) { UpdateUI(DebuggerState.BreakHalt); } else { FlashInterface.StepResume(); } }
private void Manager_OnMouseHover(ScintillaControl sci, Int32 position) { if (m_ToolTip == null) { Initialize(); } DebuggerManager debugManager = PluginMain.debugManager; FlashInterface flashInterface = debugManager.FlashInterface; if (!PluginBase.MainForm.EditorMenu.Visible && flashInterface != null && flashInterface.isDebuggerStarted && flashInterface.isDebuggerSuspended) { if (debugManager.CurrentLocation != null && debugManager.CurrentLocation.getFile() != null) { String localPath = debugManager.GetLocalPath(debugManager.CurrentLocation.getFile()); if (localPath == null || localPath != PluginBase.MainForm.CurrentDocument.FileName) { return; } } else { return; } Point dataTipPoint = Control.MousePosition; Rectangle rect = new Rectangle(m_ToolTip.Location, m_ToolTip.Size); if (m_ToolTip.Visible && rect.Contains(dataTipPoint)) { return; } position = sci.WordEndPosition(position, true); String leftword = GetWordAtPosition(sci, position); if (leftword != String.Empty) { try { IASTBuilder b = new ASTBuilder(false); ValueExp exp = b.parse(new StringReader(leftword)); var ctx = new ExpressionContext(flashInterface.Session, flashInterface.GetFrames()[debugManager.CurrentFrame]); var obj = exp.evaluate(ctx); if (obj as Variable != null) { Show(dataTipPoint, (Variable)obj, leftword); } } catch (Exception) {} } } }
public DebuggerManager() { m_FlashInterface = new FlashInterface(); m_FlashInterface.m_BreakPointManager = PluginMain.breakPointManager; m_FlashInterface.StartedEvent += new DebuggerEventHandler(flashInterface_StartedEvent); m_FlashInterface.DisconnectedEvent += new DebuggerEventHandler(flashInterface_DisconnectedEvent); m_FlashInterface.BreakpointEvent += new DebuggerEventHandler(flashInterface_BreakpointEvent); m_FlashInterface.FaultEvent += new DebuggerEventHandler(flashInterface_FaultEvent); m_FlashInterface.PauseEvent += new DebuggerEventHandler(flashInterface_PauseEvent); m_FlashInterface.StepEvent += new DebuggerEventHandler(flashInterface_StepEvent); m_FlashInterface.ScriptLoadedEvent += new DebuggerEventHandler(flashInterface_ScriptLoadedEvent); m_FlashInterface.WatchpointEvent += new DebuggerEventHandler(flashInterface_WatchpointEvent); m_FlashInterface.UnknownHaltEvent += new DebuggerEventHandler(flashInterface_UnknownHaltEvent); m_FlashInterface.ProgressEvent += new DebuggerProgressEventHandler(flashInterface_ProgressEvent); }
/// <summary> /// /// </summary> private void UpdateUI(DebuggerState state) { if ((PluginBase.MainForm as Form).InvokeRequired) { (PluginBase.MainForm as Form).BeginInvoke((MethodInvoker) delegate() { UpdateUI(state); }); return; } CurrentLocation = FlashInterface.getCurrentLocation(); UpdateStackUI(); UpdateLocalsUI(); UpdateMenuState(state); (PluginBase.MainForm as Form).Activate(); }
/// <summary> /// /// </summary> private void UpdateUI(DebuggerState state) { if ((PluginBase.MainForm as Form).InvokeRequired) { (PluginBase.MainForm as Form).BeginInvoke((MethodInvoker) delegate() { UpdateUI(state); }); return; } try { CurrentLocation = FlashInterface.getCurrentLocation(); UpdateStackUI(); UpdateLocalsUI(); UpdateMenuState(state); (PluginBase.MainForm as Form).Activate(); } catch (PlayerDebugException ex) { ErrorManager.ShowError("Internal Debugger Exception", ex); } }