void LLDBConnector::DeleteAllBreakpoints() { if(!IsRunning()) { m_pendingDeletionBreakpoints.clear(); m_breakpoints.clear(); LLDBEvent event(wxEVT_LLDB_BREAKPOINTS_UPDATED); event.SetBreakpoints(GetAllBreakpoints()); ProcessEvent(event); return; } // mark all breakpoints for deletion CL_DEBUGS(wxString() << "codelite: DeleteAllBreakpoints called"); m_pendingDeletionBreakpoints.swap(m_breakpoints); if(!IsCanInteract()) { Interrupt(kInterruptReasonDeleteAllBreakpoints); } else { LLDBCommand command; command.SetCommandType(kCommandDeleteAllBreakpoints); SendCommand(command); m_pendingDeletionBreakpoints.clear(); } }
void NodeJSDebugger::OnCanInteract(clDebugEvent& event) { event.Skip(); CHECK_RUNNING(); event.Skip(false); event.SetAnswer(IsCanInteract()); }
void LLDBConnector::ShowCurrentFileLine() { if(IsCanInteract()) { LLDBCommand command; command.SetCommandType(kCommandCurrentFileLine); SendCommand(command); } }
void LLDBConnector::NextInstruction() { if(IsCanInteract()) { LLDBCommand command; command.SetCommandType(kCommandNextInstruction); SendCommand(command); } }
void LLDBConnector::RequestLocals() { if(IsCanInteract()) { LLDBCommand command; command.SetCommandType(kCommandGetLocals); SendCommand(command); } }
void LLDBConnector::EvaluateExpression(const wxString& expression) { if(IsCanInteract()) { LLDBCommand command; command.SetCommandType(kCommandEvalExpression); command.SetExpression(expression); SendCommand(command); } }
void LLDBConnector::SelectThread(int threadID) { if(IsCanInteract()) { LLDBCommand command; command.SetCommandType(kCommandSelectThread); command.SetThreadId(threadID); SendCommand(command); } }
void LLDBConnector::SelectFrame(int frameID) { if(IsCanInteract()) { LLDBCommand command; command.SetCommandType(kCommandSelectFrame); command.SetFrameId(frameID); SendCommand(command); } }
void LLDBConnector::RequestVariableChildren(int lldbId) { if(IsCanInteract()) { LLDBCommand command; command.SetCommandType(kCommandExpandVariable); command.SetLldbId(lldbId); SendCommand(command); } }
void LLDBConnector::Detach() { if(IsCanInteract()) { CL_DEBUG("Sending 'Detach' command"); LLDBCommand command; command.SetCommandType(kCommandDetach); SendCommand(command); } else { Interrupt(kInterruptReasonDetaching); } }
void LLDBConnector::ApplyBreakpoints() { if(!m_breakpoints.empty()) { if(IsCanInteract()) { LLDBCommand command; command.SetCommandType(kCommandApplyBreakpoints); command.SetBreakpoints(GetUnappliedBreakpoints()); SendCommand(command); m_breakpoints.clear(); } else { Interrupt(kInterruptReasonApplyBreakpoints); } } }
void LLDBConnector::DeleteBreakpoints() { if ( IsCanInteract() ) { CL_DEBUGS(wxString () << "codelite: deleting breakpoints (total of " << m_pendingDeletionBreakpoints.size() << " breakpoints)"); LLDBCommand command; command.SetCommandType( kCommandDeleteBreakpoint ); command.SetBreakpoints( m_pendingDeletionBreakpoints ); SendCommand( command ); CL_DEBUGS(wxString () << "codelite: DeleteBreakpoints celar pending deletionbreakpoints queue"); m_pendingDeletionBreakpoints.clear(); } else { CL_DEBUG("codelite: interrupting codelite-lldb for kInterruptReasonDeleteBreakpoint"); Interrupt( kInterruptReasonDeleteBreakpoint ); } }