// Copyright (c) 2006, Google Inc.
// This is passed as the context to the MinidumpWriteDump callback.
// This define is new to Windows 10.
// are not used. The ones set in crash_generation_client are used instead.
// there is no need to setup in-process crash generation.
// setup to do in-process crash generation.
// context outside of an exception.
// Don't attempt to create the thread if we could not create the semaphores.
// loaded by dependent code.
// strings, and their equivalent c_str pointers.
// instances in one module is not used much, so leave it as is for now.
// cache coherent code for volatile.
// TODO(munjal): Fix this in a better way by changing the design if possible.
// created, set up the handler stack.
// system's application event log.
// clean up the handler stack.
// registration was not done.
// is a race condition nonetheless.
// Perform the requested action.
// The instance of the exception handler is being destroyed.
// Allow the requesting thread to proceed.
// terminated by the ExceptionHandler destructor.
// restores the state in effect prior to allocating the AutoExceptionHandler.
// object in handler_stack_ to deliver the exception to.
// the argument to |at|.
// ExceptionHandler object) while an exception is being handled.
// it should be delivered to the previous filter.
// Put things back the way they were before entering this handler.
// can be overridden by calling ExceptionHandler::set_handle_debug_exceptions.
// WriteMinidumpWithException since there is no separate thread running.
// results in the application being terminated.
// application to be restarted.
// above, or it was passed to the handler, which decided not to handle it.
// or native "crashed" dialog to handle the exception.
// access by the developer on the far side.
// previous invalid parameter handler.
// default code path being taken: _CRT_DEBUGGER_HOOK and _invoke_watson.
// the behavior of "swallowing" exceptions.
// play with sprintf here.
// If there's no previous handler, return and let _purecall handle it.
// This will just put up an assertion dialog.
// was not successfully created.
// The handler thread should only be created when the semaphores are valid.
// Set up data to be passed in to the handler thread.
// This causes the handler thread to call WriteMinidumpWithException.
// Wait until WriteMinidumpWithException is done and collect its return value.
// as though this handler were not present at all.
// id so they are not known to the client.
// Include the specified memory region.
// Stop receiving cancel callbacks.
// Ignore other callback types.
// presence of this information.
// callback will ensure that it gets included.
// boundaries of the memory region.
// The explicit comparison to TRUE avoids a warning (C4800).
// Don't allow registering the same pointer twice.