Files
clang-p2996/lldb/tools/lldb-mi/Platform.cpp
Hafiz Abid Qadeer 398732979a Improve handling of ctrl-c with MSVC.
Currently hitting Ctrl-C in Windows LLDB-MI just exits MI. But according to test_lldbmi_stopped_when_interrupt() in TestMiSignal.py Ctrl-C should send a SIGINT signal to the inferior.
Patch adds this functionality to Windows so SIGINT is sent on Ctrl-C.

Patch from EwanCrawford. Reviewed in http://reviews.llvm.org/D9248.

llvm-svn: 235887
2015-04-27 15:04:42 +00:00

50 lines
1.0 KiB
C++

//===-- Platform.cpp --------------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// this file is only relevant for Visual C++
#if defined(_MSC_VER)
#include <process.h>
#include <assert.h>
#include "Platform.h"
// the control handler or SIGINT handler
static sighandler_t _ctrlHandler = NULL;
// the default console control handler
BOOL WINAPI CtrlHandler(DWORD ctrlType)
{
if (_ctrlHandler != NULL)
{
_ctrlHandler(SIGINT);
return TRUE;
}
return FALSE;
}
sighandler_t
signal(int sig, sighandler_t sigFunc)
{
switch (sig)
{
case (SIGINT):
{
_ctrlHandler = sigFunc;
SetConsoleCtrlHandler(CtrlHandler, TRUE);
}
break;
default:
assert(!"Not implemented!");
}
return 0;
}
#endif