From 755d58a463e0f11897470b21e9071661f590c867 Mon Sep 17 00:00:00 2001 From: Oleksiy Vyalov Date: Fri, 22 May 2015 23:14:39 +0000 Subject: [PATCH] Use target's SIGSTOP and SIGINT when making decision about continue after async packet. http://reviews.llvm.org/D9857 llvm-svn: 238068 --- .../Process/gdb-remote/GDBRemoteCommunicationClient.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp index a05059f..7f194cd 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp @@ -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; -- 2.7.4