[lldb] Always call DestroyImpl from Process::Finalize

Always destroy the process, regardless of its private state. This will
call the virtual function DoDestroy under the hood, giving our derived
class a chance to do the necessary tear down, including what to do when
the private state is eStateExited.

Differential revision: https://reviews.llvm.org/D106004
This commit is contained in:
Jonas Devlieghere
2021-07-14 13:21:36 -07:00
parent e23dce6c97
commit 1e4a417ee6

View File

@@ -493,25 +493,9 @@ void Process::Finalize() {
if (m_finalizing.exchange(true))
return;
// Destroy this process if needed
switch (GetPrivateState()) {
case eStateConnected:
case eStateAttaching:
case eStateLaunching:
case eStateStopped:
case eStateRunning:
case eStateStepping:
case eStateCrashed:
case eStateSuspended:
DestroyImpl(false);
break;
case eStateInvalid:
case eStateUnloaded:
case eStateDetached:
case eStateExited:
break;
}
// Destroy the process. This will call the virtual function DoDestroy under
// the hood, giving our derived class a chance to do the ncessary tear down.
DestroyImpl(false);
// Clear our broadcaster before we proceed with destroying
Broadcaster::Clear();