Namespaces
Enumerations
enum class TriState : uint8_t
| Name | Value | Comments |
|---|---|---|
| kUnset | 0 |
The value has not explicitly been set.
To allow a zero-initialized value to have this behavior, this must have |
| kEnabled | 1 |
The value has explicitly been set to on, or a behavior has explicitly been enabled. |
| kDisabled | 2 |
The value has explicitly been set to off, or a behavior has explicitly been disabled. |
A tri-state value that can be unset, on, or off.
Defined at line 23 of file ../../third_party/crashpad/src/util/misc/tri_state.h
enum CPUArchitecture
| Name | Value | Comments |
|---|---|---|
| kCPUArchitectureUnknown | 0 |
The CPU architecture is unknown. |
| kCPUArchitectureX86 | 1 |
32-bit x86. |
| kCPUArchitectureX86_64 | 2 |
x86_64. |
| kCPUArchitectureARM | 3 |
32-bit ARM. |
| kCPUArchitectureARM64 | 4 |
64-bit ARM. |
| kCPUArchitectureMIPSEL | 5 |
32-bit MIPSEL. |
| kCPUArchitectureMIPS64EL | 6 |
64-bit MIPSEL. |
| kCPUArchitectureRISCV64 | 7 |
64-bit RISC-V. |
A system’s CPU architecture.
This can be used to represent the CPU architecture of an entire system
as in SystemSnapshot::CPUArchitecture(). It can also be used to represent
the architecture of a CPUContext structure in its CPUContext::architecture
field without reference to external data.
Defined at line 26 of file ../../third_party/crashpad/src/snapshot/cpu_architecture.h
enum MinidumpStreamType : uint32_t
| Name | Value | Comments |
|---|---|---|
| kMinidumpStreamTypeThreadList | ThreadListStream |
The stream type for MINIDUMP_THREAD_LIST. |
| kMinidumpStreamTypeModuleList | ModuleListStream |
The stream type for MINIDUMP_MODULE_LIST. |
| kMinidumpStreamTypeMemoryList | MemoryListStream |
The stream type for MINIDUMP_MEMORY_LIST. |
| kMinidumpStreamTypeException | ExceptionStream |
The stream type for MINIDUMP_EXCEPTION_STREAM. |
| kMinidumpStreamTypeSystemInfo | SystemInfoStream |
The stream type for MINIDUMP_SYSTEM_INFO. |
| kMinidumpStreamTypeHandleData | HandleDataStream |
The stream type for MINIDUMP_HANDLE_DATA_STREAM. |
| kMinidumpStreamTypeUnloadedModuleList | UnloadedModuleListStream |
The stream type for MINIDUMP_UNLOADED_MODULE_LIST. |
| kMinidumpStreamTypeMiscInfo | MiscInfoStream |
The stream type for MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2, MINIDUMP_MISC_INFO_3, and MINIDUMP_MISC_INFO_4. |
| kMinidumpStreamTypeMemoryInfoList | MemoryInfoListStream |
The stream type for MINIDUMP_MEMORY_INFO_LIST. |
| kMinidumpStreamTypeThreadNameList | ThreadNamesStream |
The stream type for MINIDUMP_THREAD_NAME_LIST. |
| kMinidumpStreamTypeLastReservedStream | LastReservedStream |
The last reserved minidump stream. |
| kMinidumpStreamTypeCrashpadInfo | 0x43500001 |
The stream type for MinidumpCrashpadInfo. |
| kMinidumpStreamTypeCrashpadLastReservedStream | 0x4350ffff |
The last reserved crashpad stream. |
Minidump stream type values for MINIDUMP_DIRECTORY::StreamType. Each
stream structure has a corresponding stream type value to identify it.
Defined at line 49 of file ../../third_party/crashpad/src/minidump/minidump_extensions.h
enum class FileWriteMode
| Name | Value | Comments |
|---|---|---|
| kReuseOrFail | 0 |
Opens the file if it exists, or fails if it does not. |
| kReuseOrCreate | 1 |
Opens the file if it exists, or creates a new file. |
| kTruncateOrCreate | 2 |
Creates a new file. If the file already exists, it will be overwritten. |
| kCreateOrFail | 3 |
Creates a new file. If the file already exists, the open will fail. |
Determines the mode that LoggingOpenFileForWrite() uses.
Defined at line 67 of file ../../third_party/crashpad/src/util/file/file_io.h
enum class FilePermissions : _Bool
| Name | Value | Comments |
|---|---|---|
| kOwnerOnly | 0 |
Equivalent to `0600`. |
| kWorldReadable | 1 |
Equivalent to `0644`. |
Determines the permissions bits for files created on POSIX systems.
Defined at line 83 of file ../../third_party/crashpad/src/util/file/file_io.h
enum class FileLocking : _Bool
| Name | Value | Comments |
|---|---|---|
| kShared | 0 |
Equivalent to `flock()` with `LOCK_SH`. |
| kExclusive | 1 |
Equivalent to `flock()` with `LOCK_EX`. |
Determines the locking mode that LoggingLockFile() uses.
Defined at line 92 of file ../../third_party/crashpad/src/util/file/file_io.h
enum class FileLockingBlocking : _Bool
| Name | Value | Comments |
|---|---|---|
| kBlocking | false |
Block until the lock is acquired |
| kNonBlocking | true |
Do not block when attempting to acquire a lock. |
Determines if LoggingLockFile will block.
Defined at line 101 of file ../../third_party/crashpad/src/util/file/file_io.h
enum class FileLockingResult : int
| Name | Value | Comments |
|---|---|---|
| kSuccess | 0 |
The lock was acquired successfully. |
| kWouldBlock | 1 |
In non-blocking mode only, the file was already locked. Locking would block, so the lock was not acquired. |
| kFailure | 2 |
The lock was not acquired. |
The return value for LoggingLockFile.
Defined at line 110 of file ../../third_party/crashpad/src/util/file/file_io.h
enum class StdioStream
| Name | Value | Comments |
|---|---|---|
| kStandardInput | 0 |
Standard input, or `stdin`. |
| kStandardOutput | 1 |
Standard output, or `stdout`. |
| kStandardError | 2 |
Standard error, or `stderr`. |
Determines the FileHandle that StdioFileHandle() returns.
Defined at line 123 of file ../../third_party/crashpad/src/util/file/file_io.h
enum MinidumpCPUArchitecture : uint16_t
| Name | Value | Comments |
|---|---|---|
| kMinidumpCPUArchitectureX86 | PROCESSOR_ARCHITECTURE_INTEL |
32-bit x86.
These systems identify their CPUs generically as “x86” or “ia32”, or with |
| kMinidumpCPUArchitectureMIPS | PROCESSOR_ARCHITECTURE_MIPS |
32-bit x86.
These systems identify their CPUs generically as “x86” or “ia32”, or with |
| kMinidumpCPUArchitectureAlpha | PROCESSOR_ARCHITECTURE_ALPHA |
32-bit x86.
These systems identify their CPUs generically as “x86” or “ia32”, or with |
| kMinidumpCPUArchitecturePPC | PROCESSOR_ARCHITECTURE_PPC |
32-bit PowerPC.
These systems identify their CPUs generically as “ppc”, or with more |
| kMinidumpCPUArchitectureSHx | PROCESSOR_ARCHITECTURE_SHX |
32-bit PowerPC.
These systems identify their CPUs generically as “ppc”, or with more |
| kMinidumpCPUArchitectureARM | PROCESSOR_ARCHITECTURE_ARM |
32-bit ARM.
These systems identify their CPUs generically as “arm”, or with more |
| kMinidumpCPUArchitectureIA64 | PROCESSOR_ARCHITECTURE_IA64 |
32-bit ARM.
These systems identify their CPUs generically as “arm”, or with more |
| kMinidumpCPUArchitectureAlpha64 | PROCESSOR_ARCHITECTURE_ALPHA64 |
32-bit ARM.
These systems identify their CPUs generically as “arm”, or with more |
| kMinidumpCPUArchitectureMSIL | PROCESSOR_ARCHITECTURE_MSIL |
32-bit ARM.
These systems identify their CPUs generically as “arm”, or with more |
| kMinidumpCPUArchitectureAMD64 | PROCESSOR_ARCHITECTURE_AMD64 |
64-bit x86.
These systems identify their CPUs as “x86_64”, “amd64”, or “x64”. |
| kMinidumpCPUArchitectureX86Win64 | PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 |
A 32-bit x86 process running on IA-64 (Itanium). |
| kMinidumpCPUArchitectureNeutral | PROCESSOR_ARCHITECTURE_NEUTRAL |
A 32-bit x86 process running on IA-64 (Itanium). |
| kMinidumpCPUArchitectureARM64 | PROCESSOR_ARCHITECTURE_ARM64 |
64-bit ARM.
These systems identify their CPUs generically as “arm64” or “aarch64”, or |
| kMinidumpCPUArchitectureARM32Win64 | PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64 |
64-bit ARM.
These systems identify their CPUs generically as “arm64” or “aarch64”, or |
| kMinidumpCPUArchitectureSPARC | 0x8001 |
64-bit ARM.
These systems identify their CPUs generically as “arm64” or “aarch64”, or |
| kMinidumpCPUArchitecturePPC64 | 0x8002 |
64-bit PowerPC.
These systems identify their CPUs generically as “ppc64”, or with more |
| kMinidumpCPUArchitectureARM64Breakpad | 0x8003 |
Used by Breakpad for 64-bit ARM. |
| kMinidumpCPUArchitectureRISCV64Breakpad | 0x8006 |
Used by Breakpad for 64-bit RISC-V. |
| kMinidumpCPUArchitectureUnknown | PROCESSOR_ARCHITECTURE_UNKNOWN |
Unknown CPU architecture. |
CPU type values for MINIDUMP_SYSTEM_INFO::ProcessorArchitecture.
Defined at line 149 of file ../../third_party/crashpad/src/minidump/minidump_extensions.h
enum MinidumpOSType : uint8_t
| Name | Value | Comments |
|---|---|---|
| kMinidumpOSTypeWorkstation | VER_NT_WORKSTATION |
A “desktop” or “workstation” system. |
| kMinidumpOSTypeDomainController | VER_NT_DOMAIN_CONTROLLER |
A “domain controller” system. Windows-specific. |
| kMinidumpOSTypeServer | VER_NT_SERVER |
A “server” system. |
Operating system type values for MINIDUMP_SYSTEM_INFO::ProductType.
Defined at line 223 of file ../../third_party/crashpad/src/minidump/minidump_extensions.h
enum MinidumpOS : uint32_t
| Name | Value | Comments |
|---|---|---|
| kMinidumpOSWin32s | VER_PLATFORM_WIN32s |
Windows 3.1. |
| kMinidumpOSWin32Windows | VER_PLATFORM_WIN32_WINDOWS |
Windows 95, Windows 98, and Windows Me. |
| kMinidumpOSWin32NT | VER_PLATFORM_WIN32_NT |
Windows NT, Windows 2000, and later. |
| kMinidumpOSUnix | 0x8000 |
Windows NT, Windows 2000, and later. |
| kMinidumpOSMacOSX | 0x8101 |
macOS, Darwin for traditional systems. |
| kMinidumpOSIOS | 0x8102 |
iOS, Darwin for mobile devices. |
| kMinidumpOSLinux | 0x8201 |
Linux, not including Android. |
| kMinidumpOSSolaris | 0x8202 |
Linux, not including Android. |
| kMinidumpOSAndroid | 0x8203 |
Android. |
| kMinidumpOSPS3 | 0x8204 |
Android. |
| kMinidumpOSNaCl | 0x8205 |
Native Client (NaCl). |
| kMinidumpOSFuchsia | 0x8206 |
Fuchsia. |
| kMinidumpOSUnknown | 0xffffffff |
Unknown operating system. |
Operating system family values for MINIDUMP_SYSTEM_INFO::PlatformId.
Defined at line 237 of file ../../third_party/crashpad/src/minidump/minidump_extensions.h
Records
-
class Annotation -
class AnnotationList -
class AnnotationSnapshot -
class CPUContext -
class CPUContextARM -
class CPUContextARM64 -
class CPUContextMIPS -
class CPUContextMIPS64 -
class CPUContextRISCV64 -
class CPUContextX86 -
class CPUContextX86_64 -
class CheckedRange -
class CodeViewRecordBuildID -
class CodeViewRecordPDB20 -
class CodeViewRecordPDB70 -
class CompositeHTTPBodyStream -
class CrashpadInfo -
class CrashpadInfoClientOptions -
class CrashpadInfoReader -
class ElfDynamicArrayReader -
class ElfImageReader -
class ElfSymbolTableReader -
class ExceptionSnapshot -
class FileReader -
class FileReaderHTTPBodyStream -
class FileReaderInterface -
class FileSeekerInterface -
class FileWriter -
class FileWriterInterface -
class HTTPBodyStream -
class HTTPMultipartBuilder -
class HandleSnapshot -
class InitializationState -
class MemoryMapFuchsia -
class MemoryMapRegionSnapshot -
class MemorySnapshot -
class MinidumpAnnotation -
class MinidumpAnnotationList -
class MinidumpByteArray -
class MinidumpCrashpadInfo -
class MinidumpFileWriter -
class MinidumpModuleCrashpadInfo -
class MinidumpModuleCrashpadInfoLink -
class MinidumpModuleCrashpadInfoList -
class MinidumpRVAList -
class MinidumpSimpleStringDictionary -
class MinidumpSimpleStringDictionaryEntry -
class MinidumpStream -
class MinidumpUTF8String -
class MinidumpUserExtensionStreamDataSource -
class ModuleSnapshot -
class ProcessMemory -
class ProcessMemoryFuchsia -
class ProcessMemoryRange -
class ProcessMemorySanitized -
class ProcessReaderFuchsia -
class ProcessSnapshot -
class ProcessSnapshotFuchsia -
class ProcessSnapshotMinidump -
class ScopedSpinGuard -
class ScopedTaskSuspend -
class SpinGuardState -
class StringAnnotation -
class StringFile -
class StringHTTPBodyStream -
class SystemSnapshot -
class TSimpleAddressRangeBag -
class TSimpleStringDictionary -
class ThreadSnapshot -
class UUID -
class UnloadedModuleSnapshot -
class UserMinidumpStream -
class WeakFileHandleFileReader -
class WeakFileHandleFileWriter -
class WritableIoVec -
class uint128_struct
Functions
-
std::string URLEncode (const std::string & url)Performs percent-encoding (URL encoding) on the input string,
following RFC 3986 paragraph 2.
Parameters
url [in] The string to be encoded.Returns
The encoded string.
-
uint64_t ClockMonotonicNanoseconds ()Returns the value of the system’s monotonic clock.
The monotonic clock is a tick counter whose epoch is unspecified. It is a
monotonically-increasing clock that cannot be set, and never jumps backwards
on a running system. The monotonic clock may stop while the system is
sleeping, and it may be reset when the system starts up. This clock is
suitable for computing durations of events. Subject to the underlying
clock’s resolution, successive calls to this function will result in a
series of increasing values.
Returns
The value of the system’s monotonic clock, in nanoseconds.
-
bool CrackURL (const std::string &url,std::string *scheme,std::string *host,std::string *port,std::string *rest)Crack a URL into component parts.
This is not a general function, and works only on the limited style of URLs
that are expected to be used by HTTPTransport::SetURL().
Parameters
url [in] The URL to crack.scheme [out] The request scheme, either http or https.host [out] The hostname.port [out] The port.rest [out] The remainder of the URL (both resource and URL params).Returns
`true` on success in which case all output parameters will be filled
out, or `false` on failure, in which case the output parameters will be
unmodified and an error will be logged.
-
void SleepNanoseconds (uint64_t nanoseconds)Sleeps for the specified duration.
On POSIX, this function is resilient against the underlying `nanosleep()`
system call being interrupted by a signal.
Parameters
nanoseconds [in] The number of nanoseconds to sleep. The actual sleepmay be slightly longer due to latencies and timer resolution. -
bool LoggingDetermineMergedRange (const MemorySnapshot *a,const MemorySnapshot *b,CheckedRange<uint64_t, size_t> *merged)Given two memory snapshots, checks if they're overlapping or
abutting, and if so, returns the result of merging the two ranges.
This function is useful to implement
MemorySnapshot::MergeWithOtherSnapshot().
Parameters
a [in] The first range. Must have Size() > 0.b [in] The second range. Must have Size() > 0.merged [out] The resulting merged range. May be `nullptr` if only acharacterization of the ranges is desired.Returns
`true` if the input ranges overlap or abut, with
filled
out, otherwise, `false` with an error logged if
is `true`.
-
bool DetermineMergedRange (const MemorySnapshot *a,const MemorySnapshot *b,CheckedRange<uint64_t, size_t> *merged)The same as LoggingDetermineMergedRange but with no errors logged.
-
FileOperationResult ReadFile (FileHandlefile,void *buffer,size_tsize)Reads from a file, retrying when interrupted before reading any data
on POSIX.
This function reads into
Fewer than
bytes may be read.
On Windows, reading from sockets is not currently supported.
Returns
The number of bytes read and placed into
or `-1` on
error, with `errno` or `GetLastError()` set appropriately. On error, a
portion of
may have been read into
-
bool WriteFile (FileHandlefile,const void *buffer,size_tsize)Writes to a file, retrying when interrupted on POSIX or following a
short write.
This function writes to
stopping only when
bytes have been
written.
Returns
`true` on success. `false` on error, with `errno` or
`GetLastError()` set appropriately. On error, a portion of
may
have been written to
-
bool ReadFileExactly (FileHandlefile,void *buffer,size_tsize)Wraps ReadFile(), retrying following a short read, ensuring that
exactly
bytes are read. Does not log on failure.
Returns
`true` on success. Returns `false` if the underlying ReadFile()
fails or if fewer than
bytes were read.
-
FileOperationResult ReadFileUntil (FileHandlefile,void *buffer,size_tsize)Wraps ReadFile(), retrying following a short read. Does not log on
failure.
-
bool LoggingReadFileExactly (FileHandlefile,void *buffer,size_tsize)Wraps ReadFile(), retrying following a short read, ensuring that
exactly
bytes are read. Logs an error on failure.
Returns
`true` on success. Returns `false` if the underlying ReadFile()
fails or if fewer than
bytes were read.
-
FileOperationResult LoggingReadFileUntil (FileHandlefile,void *buffer,size_tsize)Wraps ReadFile(), retrying following a short read. Logs an error on
failure.
-
bool LoggingWriteFile (FileHandlefile,const void *buffer,size_tsize)Wraps WriteFile(), ensuring that exactly
bytes are written.
Returns
`true` on success. If the underlying WriteFile() fails, or if fewer
than
bytes were written, this function logs a message and
returns `false`.
-
void CheckedReadFileExactly (FileHandlefile,void *buffer,size_tsize)Wraps ReadFile(), ensuring that exactly
bytes are read.
If the underlying ReadFile() fails, or if fewer than
bytes were
read, this function causes execution to terminate without returning.
-
void CheckedWriteFile (FileHandlefile,const void *buffer,size_tsize)Wraps WriteFile(), ensuring that exactly
bytes are written.
if the underlying WriteFile() fails, or if fewer than
bytes were
written, this function causes execution to terminate without returning.
-
void CheckedReadFileAtEOF (FileHandle file)Wraps ReadFile(), ensuring that it indicates end-of-file.
Attempts to read a single byte from
expecting no data to be read.
If the underlying ReadFile() fails, or if a byte actually is read, this
function causes execution to terminate without returning.
-
bool LoggingReadToEOF (FileHandle file, std::string * contents)Wraps ReadFile() to read from the current file position to the end of
the file into
Returns
`true` on success, or `false` with a message logged.
-
bool LoggingReadEntireFile (const base::FilePath & path, std::string * contents)Wraps LoggingOpenFileForRead() and ReadFile() reading the entire file
into
Returns
`true` on success, or `false` with a message logged.
-
FileHandle OpenFileForRead (const base::FilePath & path)Wraps `open()` or `CreateFile()`, opening an existing file for
reading.
Returns
The newly opened FileHandle, or an invalid FileHandle on failure.
-
FileHandle OpenFileForWrite (const base::FilePath &path,FileWriteModemode,FilePermissionspermissions)Wraps `open()` or `CreateFile()`, creating a file for output.
determines the style (truncate, reuse, etc.) that is used to open
the file. On POSIX,
determines the value that is passed as
`mode` to `open()`. On Windows, the file is always opened in binary mode
(that is, no CRLF translation). On Windows, the file is opened for sharing,
see LoggingLockFile() and LoggingUnlockFile() to control concurrent access.
Returns
The newly opened FileHandle, or an invalid FileHandle on failure.
-
FileHandle OpenFileForReadAndWrite (const base::FilePath &path,FileWriteModemode,FilePermissionspermissions)Wraps `open()` or `CreateFile()`, creating a file for both input and
output.
determines the style (truncate, reuse, etc.) that is used to open
the file. On POSIX,
determines the value that is passed as
`mode` to `open()`. On Windows, the file is always opened in binary mode
(that is, no CRLF translation). On Windows, the file is opened for sharing,
see LoggingLockFile() and LoggingUnlockFile() to control concurrent access.
Returns
The newly opened FileHandle, or an invalid FileHandle on failure.
-
FileHandle LoggingOpenFileForRead (const base::FilePath & path)Wraps OpenFileForRead(), logging an error if the operation fails.
Returns
The newly opened FileHandle, or an invalid FileHandle on failure.
-
FileHandle LoggingOpenFileForWrite (const base::FilePath &path,FileWriteModemode,FilePermissionspermissions)Wraps OpenFileForWrite(), logging an error if the operation fails.
Returns
The newly opened FileHandle, or an invalid FileHandle on failure.
-
FileHandle LoggingOpenMemoryFileForReadAndWrite (const base::FilePath & name)Opens an in-memory file for input and output.
This function first attempts to open the file with `memfd_create()`. If
`memfd_create()` isn't supported by the kernel, this function next attempts
to open a file using `O_TMPFILE`. If `O_TMPFILE` isn't supported, this
function finally falls back to creating a file with a randomized name in
`/tmp` and immediately `unlink()`ing it.
Unlike other file open operations, this function doesn't set `O_CLOEXEC`.
Parameters
name A name associated with the file. This name does not indicate anyexact path and may not be used at all, depending on the strategy used tocreate the file. The name should not contain any '/' characters.Returns
The newly opened FileHandle, or an invalid FileHandle on failure,
with a message logged.
-
FileHandle LoggingOpenFileForReadAndWrite (const base::FilePath &path,FileWriteModemode,FilePermissionspermissions)Wraps OpenFileForReadAndWrite(), logging an error if the operation
fails.
Returns
The newly opened FileHandle, or an invalid FileHandle on failure.
-
FileOffset LoggingSeekFile (FileHandlefile,FileOffsetoffset,intwhence)Wraps `lseek()` or `SetFilePointerEx()`. Logs an error if the
operation fails.
Repositions the offset of the open
to the specified
relative to
must be one of `SEEK_SET`, `SEEK_CUR`, or
`SEEK_END`, and is interpreted in the usual way.
Returns
The resulting offset in bytes from the beginning of the file, or
`-1` on failure.
-
FileOffset LoggingSeekFile (FileHandlefile,FileOffsetoffset,intwhence)Wraps `lseek()` or `SetFilePointerEx()`. Logs an error if the
operation fails.
Repositions the offset of the open
to the specified
relative to
must be one of `SEEK_SET`, `SEEK_CUR`, or
`SEEK_END`, and is interpreted in the usual way.
Returns
The resulting offset in bytes from the beginning of the file, or
`-1` on failure.
-
bool LoggingTruncateFile (FileHandle file)Truncates the given
to zero bytes in length.
Returns
`true` on success, or `false`, and a message will be logged.
-
bool LoggingCloseFile (FileHandle file)Wraps `close()` or `CloseHandle()`, logging an error if the operation
fails.
Returns
On success, `true` is returned. On failure, an error is logged and
`false` is returned.
-
void CheckedCloseFile (FileHandle file)Wraps `close()` or `CloseHandle()`, ensuring that it succeeds.
If the underlying function fails, this function causes execution to
terminate without returning.
-
FileOffset LoggingFileSizeByHandle (FileHandle file)Determines the size of a file.
Parameters
file [in] The handle to the file for which the size should beretrieved.Returns
The size of the file. If an error occurs when attempting to
determine its size, returns `-1` with an error logged.
-
FileHandle StdioFileHandle (StdioStream stdio_stream)Returns a FileHandle corresponding to the requested standard I/O
stream.
The returned FileHandle should not be closed on POSIX, where it is
important to maintain valid file descriptors occupying the slots reserved
for these streams. If a need to close such a stream arises on POSIX,
`dup2()` should instead be used to replace the existing file descriptor with
one opened to `/dev/null`. See CloseStdinAndStdout().
Parameters
stdio_stream [in] The requested standard I/O stream.Returns
A corresponding FileHandle on success. kInvalidFileHandle on error,
with a message logged.
-
template <typename To, typename From>To implicit_cast (const From & f)Use implicit_cast as a safe version of static_cast or const_cast
for upcasting in the type hierarchy (i.e. casting a pointer to Foo
to a pointer to SuperclassOfFoo or casting a pointer to Foo to
a const pointer to Foo).
When you use implicit_cast, the compiler checks that the cast is safe.
Such explicit implicit_casts are necessary in surprisingly many
situations where C++ demands an exact type match instead of an
argument type convertible to a target type.
The From type can be inferred, so the preferred syntax for using
implicit_cast is the same as for static_cast etc.:
implicit_cast
<ToType
>(expr)
implicit_cast would have been part of the C++ standard library,
but the proposal was submitted too late. It will probably make
its way into the language in the future.
Defined at line 38 of file ../../third_party/crashpad/src/util/misc/implicit_cast.h
-
template <typename From, typename To>bool ReinterpretBytes (const From & from, To * to)Copies the bytes of
to
This function is similar to `bit_cast`, except that it can operate on
differently sized types.
Returns
`true` if the copy is possible without information loss, otherwise
`false` with a message logged.
Defined at line 39 of file ../../third_party/crashpad/src/util/misc/reinterpret_bytes.h
-
template <typename To, typename From>typename std::enable_if<std::is_same<typename std::remove_cv<From>::type, std::nullptr_t>::value, To>::type FromPointerCast (From )Cast std::nullptr_t to any type.
In C++14, the nullptr_t check could use std::is_null_pointer
<From
>::value
instead of the is_same
<remove
_cv
<From
>::type, nullptr_t>::type construct.
Defined at line 54 of file ../../third_party/crashpad/src/util/misc/from_pointer_cast.h
-
template <typename To, typename From>typename std::enable_if<std::is_pointer<From>::value && std::is_pointer<To>::value, To>::type FromPointerCast (From from)Cast a pointer to any other pointer type.
Defined at line 77 of file ../../third_party/crashpad/src/util/misc/from_pointer_cast.h
-
template <typename Totypename From>typename std::enable_if<std::is_pointer<From>::value && std::is_integral<To>::value, To>::type FromPointerCast (From from)Cast a pointer to an integral type. Sign-extend when casting to a signed
type, zero-extend when casting to an unsigned type.
Defined at line 87 of file ../../third_party/crashpad/src/util/misc/from_pointer_cast.h