Crashpad
Public Member Functions | List of all members
crashpad::ExceptionHandlerServer::Delegate Class Referenceabstract
Inheritance diagram for crashpad::ExceptionHandlerServer::Delegate:
crashpad::CrashReportExceptionHandler crashpad::CrosCrashReportExceptionHandler

Public Member Functions

virtual bool HandleException (pid_t client_process_id, uid_t client_uid, const ExceptionHandlerProtocol::ClientInformation &info, VMAddress requesting_thread_stack_address=0, pid_t *requesting_thread_id=nullptr, UUID *local_report_id=nullptr)=0
 Called on receipt of a crash dump request from a client. More...
 
virtual bool HandleExceptionWithBroker (pid_t client_process_id, uid_t client_uid, const ExceptionHandlerProtocol::ClientInformation &info, int broker_sock, UUID *local_report_id=nullptr)=0
 Called on the receipt of a crash dump request from a client for a crash that should be mediated by a PtraceBroker. More...
 
virtual void ExceptionHandlerServerStarted ()=0
 Called when the server has created the named pipe connection points and is ready to service requests.
 
virtual unsigned int ExceptionHandlerServerException (HANDLE process, WinVMAddress exception_information_address, WinVMAddress debug_critical_section_address)=0
 Called when the client has signalled that it has encountered an exception and so wants a crash dump to be taken. More...
 

Member Function Documentation

◆ ExceptionHandlerServerException()

virtual unsigned int crashpad::ExceptionHandlerServer::Delegate::ExceptionHandlerServerException ( HANDLE  process,
WinVMAddress  exception_information_address,
WinVMAddress  debug_critical_section_address 
)
pure virtual

Called when the client has signalled that it has encountered an exception and so wants a crash dump to be taken.

Parameters
[in]processA handle to the client process. Ownership of the lifetime of this handle is not passed to the delegate.
[in]exception_information_addressThe address in the client's address space of an ExceptionInformation structure.
[in]debug_critical_section_addressThe address in the client's address space of a CRITICAL_SECTION allocated with a valid .DebugInfo field, or 0 if unavailable.
Returns
The exit code that should be used when terminating the client process.

Implemented in crashpad::CrashReportExceptionHandler.

◆ HandleException()

virtual bool crashpad::ExceptionHandlerServer::Delegate::HandleException ( pid_t  client_process_id,
uid_t  client_uid,
const ExceptionHandlerProtocol::ClientInformation info,
VMAddress  requesting_thread_stack_address = 0,
pid_t *  requesting_thread_id = nullptr,
UUID local_report_id = nullptr 
)
pure virtual

Called on receipt of a crash dump request from a client.

Parameters
[in]client_process_idThe process ID of the crashing client.
[in]client_uidThe user ID of the crashing client.
[in]infoInformation on the client.
[in]requesting_thread_stack_addressAny address within the stack range for the the thread that sent the crash dump request. Optional. If unspecified or 0, requesting_thread_id will be -1.
[out]requesting_thread_idThe thread ID of the thread which requested the crash dump if not nullptr. Set to -1 if the thread ID could not be determined. Optional.
[out]local_report_idThe unique identifier for the report created in the local report database. Optional.
Returns
true on success. false on failure with a message logged.

Implemented in crashpad::CrashReportExceptionHandler, and crashpad::CrosCrashReportExceptionHandler.

◆ HandleExceptionWithBroker()

virtual bool crashpad::ExceptionHandlerServer::Delegate::HandleExceptionWithBroker ( pid_t  client_process_id,
uid_t  client_uid,
const ExceptionHandlerProtocol::ClientInformation info,
int  broker_sock,
UUID local_report_id = nullptr 
)
pure virtual

Called on the receipt of a crash dump request from a client for a crash that should be mediated by a PtraceBroker.

Parameters
[in]client_process_idThe process ID of the crashing client.
[in]client_uidThe uid of the crashing client.
[in]infoInformation on the client.
[in]broker_sockA socket connected to the PtraceBroker.
[out]local_report_idThe unique identifier for the report created in the local report database. Optional.
Returns
true on success. false on failure with a message logged.

Implemented in crashpad::CrashReportExceptionHandler, and crashpad::CrosCrashReportExceptionHandler.


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