diff options
author | Jim Ingham <jingham@apple.com> | 2014-06-25 02:32:56 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2014-06-25 02:32:56 +0000 |
commit | 106d02866d4d54b09c08e6a12915dba58e709294 (patch) | |
tree | d495af8b9b7f1823c685bc4ff2ce2a9a0289b5b9 /lldb/tools/debugserver/source/RNBRemote.cpp | |
parent | ab8d0a0dd514e8313f39e3f09482468577ffe144 (diff) | |
download | bcm5719-llvm-106d02866d4d54b09c08e6a12915dba58e709294.tar.gz bcm5719-llvm-106d02866d4d54b09c08e6a12915dba58e709294.zip |
Added an option to turn OFF the "detach on error" behavior that was added
to debugserver when launching processes.
<rdar://problem/16216199>
llvm-svn: 211658
Diffstat (limited to 'lldb/tools/debugserver/source/RNBRemote.cpp')
-rw-r--r-- | lldb/tools/debugserver/source/RNBRemote.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lldb/tools/debugserver/source/RNBRemote.cpp b/lldb/tools/debugserver/source/RNBRemote.cpp index e8fb114d2ba..f2b1171acda 100644 --- a/lldb/tools/debugserver/source/RNBRemote.cpp +++ b/lldb/tools/debugserver/source/RNBRemote.cpp @@ -203,6 +203,7 @@ RNBRemote::CreatePacketTable () t.push_back (Packet (set_enable_profiling, &RNBRemote::HandlePacket_SetEnableAsyncProfiling, NULL, "QSetEnableAsyncProfiling", "Enable or disable the profiling of current target.")); t.push_back (Packet (watchpoint_support_info, &RNBRemote::HandlePacket_WatchpointSupportInfo, NULL, "qWatchpointSupportInfo", "Return the number of supported hardware watchpoints")); t.push_back (Packet (set_process_event, &RNBRemote::HandlePacket_QSetProcessEvent, NULL, "QSetProcessEvent:", "Set a process event, to be passed to the process, can be set before the process is started, or after.")); + t.push_back (Packet (set_detach_on_error, &RNBRemote::HandlePacket_QSetDetachOnError, NULL, "QSetDetachOnError:", "Set whether debugserver will detach (1) or kill (0) from the process it is controlling if it loses connection to lldb.")); t.push_back (Packet (speed_test, &RNBRemote::HandlePacket_qSpeedTest, NULL, "qSpeedTest:", "Test the maximum speed at which packet can be sent/received.")); } @@ -2018,6 +2019,24 @@ RNBRemote::HandlePacket_QSyncThreadState (const char *p) } rnb_err_t +RNBRemote::HandlePacket_QSetDetachOnError (const char *p) +{ + p += sizeof ("QSetDetachOnError:") - 1; + bool should_detach = true; + switch (*p) + { + case '0': should_detach = false; break; + case '1': should_detach = true; break; + default: + return HandlePacket_ILLFORMED (__FILE__, __LINE__, p, "Invalid value for QSetDetachOnError - should be 0 or 1"); + break; + } + + m_ctx.SetDetachOnError(should_detach); + return SendPacket ("OK"); +} + +rnb_err_t RNBRemote::HandlePacket_QListThreadsInStopReply (const char *p) { // If this packet is received, it allows us to send an extra key/value |