[Lldb-commits] [PATCH] Fix -gdb-exit to detach if was attached or destroy otherwise (MI)
Ilia K
ki.stfu at gmail.com
Tue Mar 24 01:22:35 PDT 2015
Call Process::Detach from Process::Destroy if needed
I'm not sure about this patch and I think it isn't ready.
As I understood Detach is detaching without cleanup, Halt is killing a target without cleanup, but Destroy detaches or kills a target and performs a cleanup after that. Therefore I think Destroy should be like following:
Destroy()
{
if (GetShouldDetach())
Detach();
else
Halt();
CleanupObject();
}
http://reviews.llvm.org/D8298
Files:
source/Target/Process.cpp
tools/lldb-mi/MICmdCmdMiscellanous.cpp
Index: source/Target/Process.cpp
===================================================================
--- source/Target/Process.cpp
+++ source/Target/Process.cpp
@@ -831,14 +831,7 @@
case eStateStepping:
case eStateCrashed:
case eStateSuspended:
- if (GetShouldDetach())
- {
- // FIXME: This will have to be a process setting:
- bool keep_stopped = false;
- Detach(keep_stopped);
- }
- else
- Destroy();
+ Destroy();
break;
case eStateInvalid:
@@ -3951,6 +3944,13 @@
// that might hinder the destruction. Remember to set this back to false when we are done. That way if the attempt
// failed and the process stays around for some reason it won't be in a confused state.
+ if (GetShouldDetach())
+ {
+ // FIXME: This will have to be a process setting:
+ bool keep_stopped = false;
+ Detach(keep_stopped);
+ }
+
m_destroy_in_process = true;
Error error (WillDestroy());
Index: tools/lldb-mi/MICmdCmdMiscellanous.cpp
===================================================================
--- tools/lldb-mi/MICmdCmdMiscellanous.cpp
+++ tools/lldb-mi/MICmdCmdMiscellanous.cpp
@@ -74,7 +74,7 @@
CMICmdCmdGdbExit::Execute(void)
{
CMICmnLLDBDebugger::Instance().GetDriver().SetExitApplicationFlag(true);
- const lldb::SBError sbErr = m_rLLDBDebugSessionInfo.GetProcess().Detach();
+ const lldb::SBError sbErr = m_rLLDBDebugSessionInfo.GetProcess().Destroy();
// Do not check for sbErr.Fail() here, m_lldbProcess is likely !IsValid()
return MIstatus::success;
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D8298.22544.patch
Type: text/x-patch
Size: 1710 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20150324/ccb1174c/attachment.bin>
More information about the lldb-commits
mailing list