Use target's SIGSTOP and SIGINT when making decision about continue after async packet.

http://reviews.llvm.org/D9857

llvm-svn: 238068
This commit is contained in:
Oleksiy Vyalov 2015-05-22 23:14:39 +00:00
parent 4c3753c4d4
commit 755d58a463
1 changed files with 6 additions and 6 deletions

View File

@ -35,6 +35,7 @@
#include "lldb/Host/TimeValue.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/MemoryRegionInfo.h"
#include "lldb/Target/UnixSignals.h"
// Project includes
#include "Utility/StringExtractorGDBRemote.h"
@ -46,10 +47,6 @@ using namespace lldb;
using namespace lldb_private;
using namespace lldb_private::process_gdb_remote;
#if defined(LLDB_DISABLE_POSIX) && !defined(SIGSTOP)
#define SIGSTOP 17
#endif
//----------------------------------------------------------------------
// GDBRemoteCommunicationClient constructor
//----------------------------------------------------------------------
@ -866,7 +863,10 @@ GDBRemoteCommunicationClient::SendContinuePacketAndWaitForResponse
// Set the starting continue packet into "continue_packet". This packet
// may change if we are interrupted and we continue after an async packet...
std::string continue_packet(payload, packet_length);
const auto sigstop_signo = process->GetUnixSignals().GetSignalNumberFromName("SIGSTOP");
const auto sigint_signo = process->GetUnixSignals().GetSignalNumberFromName("SIGINT");
bool got_async_packet = false;
while (state == eStateRunning)
@ -936,7 +936,7 @@ GDBRemoteCommunicationClient::SendContinuePacketAndWaitForResponse
// packet. If we don't do this, then the reply for our
// async packet will be the repeat stop reply packet and cause
// a lot of trouble for us!
if (signo != SIGINT && signo != SIGSTOP)
if (signo != sigint_signo && signo != sigstop_signo)
{
continue_after_async = false;