Crashpad
Classes | Public Member Functions | List of all members
crashpad::ExceptionHandlerServer Class Reference

Runs the main exception-handling server in Crashpad’s handler process. More...

#include "util/win/exception_handler_server.h"

Classes

class  Delegate
 

Public Member Functions

void Run (UniversalMachExcServer::Interface *exception_interface)
 Runs the exception-handling server. More...
 
mach_port_t receive_port () const
 Returns the receive right that will be monitored for exception messages. More...
 
 ExceptionHandlerServer ()
 Constructs the exception handling server.
 
void Run (Delegate *delegate, const std::string &pipe_name)
 Runs the exception-handling server. More...
 
void Stop ()
 Stops the exception-handling server. Returns immediately. The object must not be destroyed until Run() returns.
 

Detailed Description

Runs the main exception-handling server in Crashpad’s handler process.

Runs the main exception-handling server in Crashpad's handler process.

Member Function Documentation

mach_port_t crashpad::ExceptionHandlerServer::receive_port ( ) const
inline

Returns the receive right that will be monitored for exception messages.

The caller does not take ownership of this port. The caller must not use this port for any purpose other than to make send rights for clients.

void crashpad::ExceptionHandlerServer::Run ( UniversalMachExcServer::Interface exception_interface)

Runs the exception-handling server.

Parameters
[in]exception_interfaceAn object to send exception messages to.

This method monitors receive_port() for exception messages and no-senders notifications. It continues running until it has no more clients, indicated by the receipt of a no-senders notification. It is important to assure that a send right has been transferred to a client (or queued by mach_msg() to be sent to a client) prior to calling this method, or it will detect that it is sender-less and return immediately.

All exception messages will be passed to exception_interface.

This method must only be called once on an ExceptionHandlerServer object.

If an unexpected condition that prevents this method from functioning is encountered, it will log a message and terminate execution. Receipt of an invalid message on receive_port() will cause a message to be logged, but this method will continue running normally.

void crashpad::ExceptionHandlerServer::Run ( Delegate delegate,
const std::string &  pipe_name 
)

Runs the exception-handling server.

Parameters
[in]delegateThe interface to which the exceptions are delegated when they are caught in Run(). Ownership is not transferred.
[in]pipe_nameThe name of the pipe to listen on. Must be of the form "\\.\pipe\<some_name>".

The documentation for this class was generated from the following files: