void CodeLiteLLDBApp::OpenCoreFile(const LLDBCommand& command) { wxPrintf("codeite-lldb: debugging core file '%s'\n", command.GetCorefile()); wxPrintf("codeite-lldb: executable file '%s'\n", command.GetExecutable()); if(!InitializeLLDB(command)) { return; } lldb::SBProcess process = m_target.LoadCore(command.GetCorefile().mb_str(wxConvUTF8).data()); if(!process.IsValid()) { wxPrintf("codeite-lldb: error loading core file '%s'\n", command.GetCorefile()); NotifyExited(); return; } // Launch the thread that will handle the LLDB process events m_lldbProcessEventThread = new LLDBProcessEventHandlerThread(this, m_debugger, m_target.GetProcess(), kDebugSessionTypeCore); m_lldbProcessEventThread->Start(); // Notify codelite that the debugger started successfully NotifyStarted(kDebugSessionTypeCore); // In any case, reset the interrupt reason m_interruptReason = kInterruptReasonNone; // Since we are in 'core' session // immediately notify about 'stop' NotifyStopped(); }
void CodeLiteLLDBApp::AttachProcess(const LLDBCommand& command) { wxPrintf("codeite-lldb: attaching to process with PID %d\n", command.GetProcessID()); if(!InitializeLLDB(command)) { return; } lldb::SBError errorCode; lldb::SBListener listener; lldb::SBProcess process = m_target.AttachToProcessWithID(listener, (lldb::pid_t)command.GetProcessID(), errorCode); if(!errorCode.Success()) { wxPrintf("codeite-lldb: error attaching process %d. '%s'\n", command.GetProcessID(), errorCode.GetCString()); NotifyExited(); return; } wxPrintf("codeite-lldb: process attached successfully\n"); // Launch the thread that will handle the LLDB process events m_lldbProcessEventThread = new LLDBProcessEventHandlerThread(this, m_debugger, m_target.GetProcess(), kDebugSessionTypeAttach); m_lldbProcessEventThread->Start(); // In any case, reset the interrupt reason m_interruptReason = kInterruptReasonNone; // Notify codelite that the debugger started successfully NotifyStarted(kDebugSessionTypeAttach); }
void CodeLiteLLDBApp::StartDebugger(const LLDBCommand& command) { wxPrintf("codelite-lldb: StartDebugger Called\n"); if ( !InitializeLLDB( command ) ) { return; } // Launch the thread that will handle the LLDB process events m_lldbProcessEventThread = new LLDBProcessEventHandlerThread(this, m_debugger, m_target.GetProcess(), kDebugSessionTypeNormal); m_lldbProcessEventThread->Start(); // In any case, reset the interrupt reason m_interruptReason = kInterruptReasonNone; // Notify codelite that the debugger started successfully NotifyStarted( kDebugSessionTypeNormal ); }