You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
4.3 KiB
143 lines
4.3 KiB
/*
|
|
* Copyright 2002-2019 Intel Corporation.
|
|
*
|
|
* This software and the related documents are Intel copyrighted materials, and your
|
|
* use of them is governed by the express license under which they were provided to
|
|
* you ("License"). Unless the License provides otherwise, you may not use, modify,
|
|
* copy, publish, distribute, disclose or transmit this software or the related
|
|
* documents without Intel's prior written permission.
|
|
*
|
|
* This software and the related documents are provided as is, with no express or
|
|
* implied warranties, other than those that are expressly stated in the License.
|
|
*/
|
|
|
|
// <COMPONENT>: debugger-protocol
|
|
// <FILE-TYPE>: component public header
|
|
|
|
#ifndef DEBUGGER_PROTOCOL_EVENT_MAC_HPP
|
|
#define DEBUGGER_PROTOCOL_EVENT_MAC_HPP
|
|
|
|
#include "debugger-protocol.hpp"
|
|
#include "debugger-protocol/event-linux.hpp"
|
|
|
|
|
|
namespace DEBUGGER_PROTOCOL {
|
|
|
|
/*!
|
|
* The macOS* signal numbers. These are the same values defined in the system <signal.h> header.
|
|
*/
|
|
enum MAC_SIGNAL
|
|
{
|
|
MAC_SIGNAL_HUP = 1,
|
|
MAC_SIGNAL_INT = 2,
|
|
MAC_SIGNAL_QUIT = 3,
|
|
MAC_SIGNAL_ILL = 4,
|
|
MAC_SIGNAL_TRAP = 5,
|
|
MAC_SIGNAL_ABRT = 6,
|
|
MAC_SIGNAL_EMT = 7,
|
|
MAC_SIGNAL_FPE = 8,
|
|
MAC_SIGNAL_KILL = 9,
|
|
MAC_SIGNAL_BUS = 10,
|
|
MAC_SIGNAL_SEGV = 11,
|
|
MAC_SIGNAL_SYS = 12,
|
|
MAC_SIGNAL_PIPE = 13,
|
|
MAC_SIGNAL_ALRM = 14,
|
|
MAC_SIGNAL_TERM = 15,
|
|
MAC_SIGNAL_URG = 16,
|
|
MAC_SIGNAL_STOP = 17,
|
|
MAC_SIGNAL_TSTP = 18,
|
|
MAC_SIGNAL_CONT = 19,
|
|
MAC_SIGNAL_CHLD = 20,
|
|
MAC_SIGNAL_TTIN = 21,
|
|
MAC_SIGNAL_TTOU = 22,
|
|
MAC_SIGNAL_IO = 23,
|
|
MAC_SIGNAL_XCPU = 24,
|
|
MAC_SIGNAL_XFSZ = 25,
|
|
MAC_SIGNAL_VTALRM = 26,
|
|
MAC_SIGNAL_PROF = 27,
|
|
MAC_SIGNAL_WINCH = 28,
|
|
MAC_SIGNAL_INFO = 29,
|
|
MAC_SIGNAL_USR1 = 30,
|
|
MAC_SIGNAL_USR2 = 31
|
|
};
|
|
|
|
|
|
#if defined(DEBUGGER_PROTOCOL_BUILD) // Library clients should NOT define this.
|
|
|
|
/*!
|
|
* When LLDB connects to an macOS* process, it expects that these signals are initially not
|
|
* intercepted. If a back-end connects to a debugger of type FRONTEND_TYPE_LLDB, the
|
|
* back-end should arrange for these signals to be handled internally by the process,
|
|
* without notifying LLDB. Note that these are only an initial default setting. LLDB may
|
|
* explicitly ask to intercept these signals later via IEVENT_INTERCEPTION.
|
|
*/
|
|
DEBUGGER_PROTOCOL_API EVENT DefaultMacSignalsNotInterceptedByGdb[] =
|
|
{
|
|
MAC_SIGNAL_ALRM,
|
|
MAC_SIGNAL_URG,
|
|
MAC_SIGNAL_CHLD,
|
|
MAC_SIGNAL_VTALRM,
|
|
MAC_SIGNAL_PROF,
|
|
MAC_SIGNAL_WINCH
|
|
};
|
|
|
|
/*!
|
|
* Number of entries in DefaultMacSignalsNotInterceptedByGdb.
|
|
*/
|
|
DEBUGGER_PROTOCOL_API unsigned DefaultMacSignalsNotInterceptedByGdbCount =
|
|
sizeof(DefaultMacSignalsNotInterceptedByGdb) / sizeof(DefaultMacSignalsNotInterceptedByGdb[0]);
|
|
|
|
#else
|
|
|
|
/*!
|
|
* Signals not initially intercepted by GDB.
|
|
*/
|
|
DEBUGGER_PROTOCOL_API extern EVENT DefaultMacSignalsNotInterceptedByGdb[];
|
|
|
|
/*!
|
|
* Number entries in DefaultMacSignalsNotInterceptedByGdb.
|
|
*/
|
|
DEBUGGER_PROTOCOL_API extern unsigned DefaultMacSignalsNotInterceptedByGdbCount;
|
|
|
|
#endif
|
|
|
|
|
|
/*!
|
|
* In the future, new fields may be added to the end of the EVENT_INFO_MAC32
|
|
* or EVENT_INFO_MAC64 structures. If this happens, clients can use the
|
|
* \e _version field to retain backward compatibility.
|
|
*
|
|
* When a client writes information to these structures, it should set \e _version
|
|
* to the latest version that it supports.
|
|
*
|
|
* When a client reads these structures, it should use \e _version to tell which
|
|
* fields are valid. A client should allow that \e _version may be greater than
|
|
* the newest version it knows about, which happens if an older front-end runs
|
|
* with a newer back-end or vice-versa.
|
|
*/
|
|
enum EVENT_INFO_MAC_VERSION
|
|
{
|
|
EVENT_INFO_MAC_VERSION_0 ///< This is the only defined version currently.
|
|
};
|
|
|
|
/*!
|
|
* Information about a signal received on a 32-bit macOS* target.
|
|
*/
|
|
struct /*<POD>*/ EVENT_INFO_MAC32
|
|
{
|
|
EVENT_INFO_MAC_VERSION _version; ///< Tells which fields in this structure are valid.
|
|
SIGINFO32 _siginfo; ///< Signal information.
|
|
};
|
|
|
|
/*!
|
|
* Information about a signal received on a 64-bit macOS* target.
|
|
*/
|
|
struct /*<POD>*/ EVENT_INFO_MAC64
|
|
{
|
|
EVENT_INFO_MAC_VERSION _version; ///< Tells which fields in this structure are valid.
|
|
SIGINFO64 _siginfo; ///< Signal information.
|
|
};
|
|
|
|
} // namespace
|
|
#endif // file guard
|