mirror of
https://github.com/yuzu-emu/breakpad.git
synced 2024-12-23 18:35:45 +00:00
Removing breakpad_exc_server and all references.
This was aimed at replacing exc_server, but was not used. Review URL: https://breakpad.appspot.com/357001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@930 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
af7d5ccf7b
commit
76acc0edcd
File diff suppressed because it is too large
Load diff
|
@ -1,258 +0,0 @@
|
||||||
#ifndef _exc_user_
|
|
||||||
#define _exc_user_
|
|
||||||
|
|
||||||
/* Module exc */
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
#include <mach/ndr.h>
|
|
||||||
#include <mach/boolean.h>
|
|
||||||
#include <mach/kern_return.h>
|
|
||||||
#include <mach/notify.h>
|
|
||||||
#include <mach/mach_types.h>
|
|
||||||
#include <mach/message.h>
|
|
||||||
#include <mach/mig_errors.h>
|
|
||||||
#include <mach/port.h>
|
|
||||||
|
|
||||||
#ifdef AUTOTEST
|
|
||||||
#ifndef FUNCTION_PTR_T
|
|
||||||
#define FUNCTION_PTR_T
|
|
||||||
typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
|
|
||||||
typedef struct {
|
|
||||||
char *name;
|
|
||||||
function_ptr_t function;
|
|
||||||
} function_table_entry;
|
|
||||||
typedef function_table_entry *function_table_t;
|
|
||||||
#endif /* FUNCTION_PTR_T */
|
|
||||||
#endif /* AUTOTEST */
|
|
||||||
|
|
||||||
#ifndef exc_MSG_COUNT
|
|
||||||
#define exc_MSG_COUNT 3
|
|
||||||
#endif /* exc_MSG_COUNT */
|
|
||||||
|
|
||||||
#include <mach/std_types.h>
|
|
||||||
#include <mach/mig.h>
|
|
||||||
#include <mach/mig.h>
|
|
||||||
#include <mach/mach_types.h>
|
|
||||||
|
|
||||||
#ifdef __BeforeMigUserHeader
|
|
||||||
__BeforeMigUserHeader
|
|
||||||
#endif /* __BeforeMigUserHeader */
|
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
__BEGIN_DECLS
|
|
||||||
|
|
||||||
|
|
||||||
/* Routine exception_raise */
|
|
||||||
#ifdef mig_external
|
|
||||||
mig_external
|
|
||||||
#else
|
|
||||||
extern
|
|
||||||
#endif /* mig_external */
|
|
||||||
kern_return_t exception_raise
|
|
||||||
(
|
|
||||||
mach_port_t exception_port,
|
|
||||||
mach_port_t thread,
|
|
||||||
mach_port_t task,
|
|
||||||
exception_type_t exception,
|
|
||||||
exception_data_t code,
|
|
||||||
mach_msg_type_number_t codeCnt
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Routine exception_raise_state */
|
|
||||||
#ifdef mig_external
|
|
||||||
mig_external
|
|
||||||
#else
|
|
||||||
extern
|
|
||||||
#endif /* mig_external */
|
|
||||||
kern_return_t exception_raise_state
|
|
||||||
(
|
|
||||||
mach_port_t exception_port,
|
|
||||||
exception_type_t exception,
|
|
||||||
const exception_data_t code,
|
|
||||||
mach_msg_type_number_t codeCnt,
|
|
||||||
int *flavor,
|
|
||||||
const thread_state_t old_state,
|
|
||||||
mach_msg_type_number_t old_stateCnt,
|
|
||||||
thread_state_t new_state,
|
|
||||||
mach_msg_type_number_t *new_stateCnt
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Routine exception_raise_state_identity */
|
|
||||||
#ifdef mig_external
|
|
||||||
mig_external
|
|
||||||
#else
|
|
||||||
extern
|
|
||||||
#endif /* mig_external */
|
|
||||||
kern_return_t exception_raise_state_identity
|
|
||||||
(
|
|
||||||
mach_port_t exception_port,
|
|
||||||
mach_port_t thread,
|
|
||||||
mach_port_t task,
|
|
||||||
exception_type_t exception,
|
|
||||||
exception_data_t code,
|
|
||||||
mach_msg_type_number_t codeCnt,
|
|
||||||
int *flavor,
|
|
||||||
thread_state_t old_state,
|
|
||||||
mach_msg_type_number_t old_stateCnt,
|
|
||||||
thread_state_t new_state,
|
|
||||||
mach_msg_type_number_t *new_stateCnt
|
|
||||||
);
|
|
||||||
|
|
||||||
__END_DECLS
|
|
||||||
|
|
||||||
/********************** Caution **************************/
|
|
||||||
/* The following data types should be used to calculate */
|
|
||||||
/* maximum message sizes only. The actual message may be */
|
|
||||||
/* smaller, and the position of the arguments within the */
|
|
||||||
/* message layout may vary from what is presented here. */
|
|
||||||
/* For example, if any of the arguments are variable- */
|
|
||||||
/* sized, and less than the maximum is sent, the data */
|
|
||||||
/* will be packed tight in the actual message to reduce */
|
|
||||||
/* the presence of holes. */
|
|
||||||
/********************** Caution **************************/
|
|
||||||
|
|
||||||
/* typedefs for all requests */
|
|
||||||
|
|
||||||
#ifndef __Request__exc_subsystem__defined
|
|
||||||
#define __Request__exc_subsystem__defined
|
|
||||||
|
|
||||||
#ifdef __MigPackStructs
|
|
||||||
#pragma pack(4)
|
|
||||||
#endif
|
|
||||||
typedef struct {
|
|
||||||
mach_msg_header_t Head;
|
|
||||||
/* start of the kernel processed data */
|
|
||||||
mach_msg_body_t msgh_body;
|
|
||||||
mach_msg_port_descriptor_t thread;
|
|
||||||
mach_msg_port_descriptor_t task;
|
|
||||||
/* end of the kernel processed data */
|
|
||||||
NDR_record_t NDR;
|
|
||||||
exception_type_t exception;
|
|
||||||
mach_msg_type_number_t codeCnt;
|
|
||||||
integer_t code[2];
|
|
||||||
} __Request__exception_raise_t;
|
|
||||||
#ifdef __MigPackStructs
|
|
||||||
#pragma pack()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __MigPackStructs
|
|
||||||
#pragma pack(4)
|
|
||||||
#endif
|
|
||||||
typedef struct {
|
|
||||||
mach_msg_header_t Head;
|
|
||||||
NDR_record_t NDR;
|
|
||||||
exception_type_t exception;
|
|
||||||
mach_msg_type_number_t codeCnt;
|
|
||||||
integer_t code[2];
|
|
||||||
int flavor;
|
|
||||||
mach_msg_type_number_t old_stateCnt;
|
|
||||||
natural_t old_state[144];
|
|
||||||
} __Request__exception_raise_state_t;
|
|
||||||
#ifdef __MigPackStructs
|
|
||||||
#pragma pack()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __MigPackStructs
|
|
||||||
#pragma pack(4)
|
|
||||||
#endif
|
|
||||||
typedef struct {
|
|
||||||
mach_msg_header_t Head;
|
|
||||||
/* start of the kernel processed data */
|
|
||||||
mach_msg_body_t msgh_body;
|
|
||||||
mach_msg_port_descriptor_t thread;
|
|
||||||
mach_msg_port_descriptor_t task;
|
|
||||||
/* end of the kernel processed data */
|
|
||||||
NDR_record_t NDR;
|
|
||||||
exception_type_t exception;
|
|
||||||
mach_msg_type_number_t codeCnt;
|
|
||||||
integer_t code[2];
|
|
||||||
int flavor;
|
|
||||||
mach_msg_type_number_t old_stateCnt;
|
|
||||||
natural_t old_state[144];
|
|
||||||
} __Request__exception_raise_state_identity_t;
|
|
||||||
#ifdef __MigPackStructs
|
|
||||||
#pragma pack()
|
|
||||||
#endif
|
|
||||||
#endif /* !__Request__exc_subsystem__defined */
|
|
||||||
|
|
||||||
/* union of all requests */
|
|
||||||
|
|
||||||
#ifndef __RequestUnion__exc_subsystem__defined
|
|
||||||
#define __RequestUnion__exc_subsystem__defined
|
|
||||||
union __RequestUnion__exc_subsystem {
|
|
||||||
__Request__exception_raise_t Request_exception_raise;
|
|
||||||
__Request__exception_raise_state_t Request_exception_raise_state;
|
|
||||||
__Request__exception_raise_state_identity_t Request_exception_raise_state_identity;
|
|
||||||
};
|
|
||||||
#endif /* !__RequestUnion__exc_subsystem__defined */
|
|
||||||
/* typedefs for all replies */
|
|
||||||
|
|
||||||
#ifndef __Reply__exc_subsystem__defined
|
|
||||||
#define __Reply__exc_subsystem__defined
|
|
||||||
|
|
||||||
#ifdef __MigPackStructs
|
|
||||||
#pragma pack(4)
|
|
||||||
#endif
|
|
||||||
typedef struct {
|
|
||||||
mach_msg_header_t Head;
|
|
||||||
NDR_record_t NDR;
|
|
||||||
kern_return_t RetCode;
|
|
||||||
} __Reply__exception_raise_t;
|
|
||||||
#ifdef __MigPackStructs
|
|
||||||
#pragma pack()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __MigPackStructs
|
|
||||||
#pragma pack(4)
|
|
||||||
#endif
|
|
||||||
typedef struct {
|
|
||||||
mach_msg_header_t Head;
|
|
||||||
NDR_record_t NDR;
|
|
||||||
kern_return_t RetCode;
|
|
||||||
int flavor;
|
|
||||||
mach_msg_type_number_t new_stateCnt;
|
|
||||||
natural_t new_state[144];
|
|
||||||
} __Reply__exception_raise_state_t;
|
|
||||||
#ifdef __MigPackStructs
|
|
||||||
#pragma pack()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __MigPackStructs
|
|
||||||
#pragma pack(4)
|
|
||||||
#endif
|
|
||||||
typedef struct {
|
|
||||||
mach_msg_header_t Head;
|
|
||||||
NDR_record_t NDR;
|
|
||||||
kern_return_t RetCode;
|
|
||||||
int flavor;
|
|
||||||
mach_msg_type_number_t new_stateCnt;
|
|
||||||
natural_t new_state[144];
|
|
||||||
} __Reply__exception_raise_state_identity_t;
|
|
||||||
#ifdef __MigPackStructs
|
|
||||||
#pragma pack()
|
|
||||||
#endif
|
|
||||||
#endif /* !__Reply__exc_subsystem__defined */
|
|
||||||
|
|
||||||
/* union of all replies */
|
|
||||||
|
|
||||||
#ifndef __ReplyUnion__exc_subsystem__defined
|
|
||||||
#define __ReplyUnion__exc_subsystem__defined
|
|
||||||
union __ReplyUnion__exc_subsystem {
|
|
||||||
__Reply__exception_raise_t Reply_exception_raise;
|
|
||||||
__Reply__exception_raise_state_t Reply_exception_raise_state;
|
|
||||||
__Reply__exception_raise_state_identity_t Reply_exception_raise_state_identity;
|
|
||||||
};
|
|
||||||
#endif /* !__RequestUnion__exc_subsystem__defined */
|
|
||||||
|
|
||||||
#ifndef subsystem_to_name_map_exc
|
|
||||||
#define subsystem_to_name_map_exc \
|
|
||||||
{ "exception_raise", 2401 },\
|
|
||||||
{ "exception_raise_state", 2402 },\
|
|
||||||
{ "exception_raise_state_identity", 2403 }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __AfterMigUserHeader
|
|
||||||
__AfterMigUserHeader
|
|
||||||
#endif /* __AfterMigUserHeader */
|
|
||||||
|
|
||||||
#endif /* _exc_user_ */
|
|
|
@ -146,83 +146,8 @@ extern "C"
|
||||||
mach_msg_type_number_t in_thread_state_count,
|
mach_msg_type_number_t in_thread_state_count,
|
||||||
thread_state_t out_thread_state,
|
thread_state_t out_thread_state,
|
||||||
mach_msg_type_number_t *out_thread_state_count);
|
mach_msg_type_number_t *out_thread_state_count);
|
||||||
|
|
||||||
kern_return_t breakpad_exception_raise_state(mach_port_t exception_port,
|
|
||||||
exception_type_t exception,
|
|
||||||
const exception_data_t code,
|
|
||||||
mach_msg_type_number_t codeCnt,
|
|
||||||
int *flavor,
|
|
||||||
const thread_state_t old_state,
|
|
||||||
mach_msg_type_number_t old_stateCnt,
|
|
||||||
thread_state_t new_state,
|
|
||||||
mach_msg_type_number_t *new_stateCnt
|
|
||||||
);
|
|
||||||
|
|
||||||
kern_return_t breakpad_exception_raise_state_identity(mach_port_t exception_port,
|
|
||||||
mach_port_t thread,
|
|
||||||
mach_port_t task,
|
|
||||||
exception_type_t exception,
|
|
||||||
exception_data_t code,
|
|
||||||
mach_msg_type_number_t codeCnt,
|
|
||||||
int *flavor,
|
|
||||||
thread_state_t old_state,
|
|
||||||
mach_msg_type_number_t old_stateCnt,
|
|
||||||
thread_state_t new_state,
|
|
||||||
mach_msg_type_number_t *new_stateCnt
|
|
||||||
);
|
|
||||||
|
|
||||||
kern_return_t breakpad_exception_raise(mach_port_t port, mach_port_t failed_thread,
|
|
||||||
mach_port_t task,
|
|
||||||
exception_type_t exception,
|
|
||||||
exception_data_t code,
|
|
||||||
mach_msg_type_number_t code_count);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
kern_return_t breakpad_exception_raise_state(mach_port_t exception_port,
|
|
||||||
exception_type_t exception,
|
|
||||||
const exception_data_t code,
|
|
||||||
mach_msg_type_number_t codeCnt,
|
|
||||||
int *flavor,
|
|
||||||
const thread_state_t old_state,
|
|
||||||
mach_msg_type_number_t old_stateCnt,
|
|
||||||
thread_state_t new_state,
|
|
||||||
mach_msg_type_number_t *new_stateCnt
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return KERN_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
kern_return_t breakpad_exception_raise_state_identity(mach_port_t exception_port,
|
|
||||||
mach_port_t thread,
|
|
||||||
mach_port_t task,
|
|
||||||
exception_type_t exception,
|
|
||||||
exception_data_t code,
|
|
||||||
mach_msg_type_number_t codeCnt,
|
|
||||||
int *flavor,
|
|
||||||
thread_state_t old_state,
|
|
||||||
mach_msg_type_number_t old_stateCnt,
|
|
||||||
thread_state_t new_state,
|
|
||||||
mach_msg_type_number_t *new_stateCnt
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return KERN_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
kern_return_t breakpad_exception_raise(mach_port_t port, mach_port_t failed_thread,
|
|
||||||
mach_port_t task,
|
|
||||||
exception_type_t exception,
|
|
||||||
exception_data_t code,
|
|
||||||
mach_msg_type_number_t code_count) {
|
|
||||||
|
|
||||||
if (task != mach_task_self()) {
|
|
||||||
return KERN_FAILURE;
|
|
||||||
}
|
|
||||||
return ForwardException(task, failed_thread, exception, code, code_count);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
ExceptionHandler::ExceptionHandler(const string &dump_path,
|
ExceptionHandler::ExceptionHandler(const string &dump_path,
|
||||||
FilterCallback filter,
|
FilterCallback filter,
|
||||||
MinidumpCallback callback,
|
MinidumpCallback callback,
|
||||||
|
@ -589,7 +514,7 @@ void *ExceptionHandler::WaitForMessage(void *exception_handler_class) {
|
||||||
// exceptions that occur in the parent process are caught and
|
// exceptions that occur in the parent process are caught and
|
||||||
// processed. If the exception was not caused by this task, we
|
// processed. If the exception was not caused by this task, we
|
||||||
// still need to call into the exception server and have it return
|
// still need to call into the exception server and have it return
|
||||||
// KERN_FAILURE (see breakpad_exception_raise) in order for the kernel
|
// KERN_FAILURE (see catch_exception_raise) in order for the kernel
|
||||||
// to move onto the host exception handler for the child task
|
// to move onto the host exception handler for the child task
|
||||||
if (receive.task.name == mach_task_self()) {
|
if (receive.task.name == mach_task_self()) {
|
||||||
self->SuspendThreads();
|
self->SuspendThreads();
|
||||||
|
@ -623,7 +548,7 @@ void *ExceptionHandler::WaitForMessage(void *exception_handler_class) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
// Pass along the exception to the server, which will setup the
|
// Pass along the exception to the server, which will setup the
|
||||||
// message and call breakpad_exception_raise() and put the return
|
// message and call catch_exception_raise() and put the return
|
||||||
// code into the reply.
|
// code into the reply.
|
||||||
ExceptionReplyMessage reply;
|
ExceptionReplyMessage reply;
|
||||||
if (!exc_server(&receive.header, &reply.header))
|
if (!exc_server(&receive.header, &reply.header))
|
||||||
|
|
Loading…
Reference in a new issue