diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 3c9a8bd964987fd79feef754d34434029eb38327..bced674e6b3da52593d7debed935a6d267d187e7 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -1195,6 +1195,9 @@ class Dumper(DumperBase): else: error = self.process.Continue() self.reportError(error) + # Happens when attaching to GDBserver. + if not error.Success(): + self.reportState("inferiorill") def quitDebugger(self, _ = None): self.reportState("inferiorshutdownrequested") @@ -1451,7 +1454,13 @@ class Dumper(DumperBase): def shutdownInferior(self, _ = None): self.isShuttingDown_ = True - self.process.Kill() + if self.process is None: + self.reportState("inferiorshutdownok") + else: + state = self.process.GetState() + if state == lldb.eStateStopped: + self.process.Kill() + self.reportState("inferiorshutdownok") def quit(self, _ = None): self.reportState("engineshutdownok") diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 696ef9811fd1096aff87ec437bcaca3e43f64fd1..6d343556fa3ad0517a505c4b3f0240120e44453e 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -1216,6 +1216,8 @@ void LldbEngine::refreshState(const GdbMi &reportedState) notifyInferiorStopOk(); else if (newState == "inferiorstopfailed") notifyInferiorStopFailed(); + else if (newState == "inferiorill") + notifyInferiorIll(); else if (newState == "enginesetupok") notifyEngineSetupOk(); else if (newState == "enginesetupfailed")