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
the value `0`.

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
more specific names such as “i386”, “i486”, “i586”, and “i686”.

kMinidumpCPUArchitectureMIPS PROCESSOR_ARCHITECTURE_MIPS

32-bit x86.

These systems identify their CPUs generically as “x86” or “ia32”, or with
more specific names such as “i386”, “i486”, “i586”, and “i686”.

kMinidumpCPUArchitectureAlpha PROCESSOR_ARCHITECTURE_ALPHA

32-bit x86.

These systems identify their CPUs generically as “x86” or “ia32”, or with
more specific names such as “i386”, “i486”, “i586”, and “i686”.

kMinidumpCPUArchitecturePPC PROCESSOR_ARCHITECTURE_PPC

32-bit PowerPC.

These systems identify their CPUs generically as “ppc”, or with more
specific names such as “ppc6xx”, “ppc7xx”, and “ppc74xx”.

kMinidumpCPUArchitectureSHx PROCESSOR_ARCHITECTURE_SHX

32-bit PowerPC.

These systems identify their CPUs generically as “ppc”, or with more
specific names such as “ppc6xx”, “ppc7xx”, and “ppc74xx”.

kMinidumpCPUArchitectureARM PROCESSOR_ARCHITECTURE_ARM

32-bit ARM.

These systems identify their CPUs generically as “arm”, or with more
specific names such as “armv6” and “armv7”.

kMinidumpCPUArchitectureIA64 PROCESSOR_ARCHITECTURE_IA64

32-bit ARM.

These systems identify their CPUs generically as “arm”, or with more
specific names such as “armv6” and “armv7”.

kMinidumpCPUArchitectureAlpha64 PROCESSOR_ARCHITECTURE_ALPHA64

32-bit ARM.

These systems identify their CPUs generically as “arm”, or with more
specific names such as “armv6” and “armv7”.

kMinidumpCPUArchitectureMSIL PROCESSOR_ARCHITECTURE_MSIL

32-bit ARM.

These systems identify their CPUs generically as “arm”, or with more
specific names such as “armv6” and “armv7”.

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
with more specific names such as “armv8”.

kMinidumpCPUArchitectureARM32Win64 PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64

64-bit ARM.

These systems identify their CPUs generically as “arm64” or “aarch64”, or
with more specific names such as “armv8”.

kMinidumpCPUArchitectureSPARC 0x8001

64-bit ARM.

These systems identify their CPUs generically as “arm64” or “aarch64”, or
with more specific names such as “armv8”.

kMinidumpCPUArchitecturePPC64 0x8002

64-bit PowerPC.

These systems identify their CPUs generically as “ppc64”, or with more
specific names such as “ppc970”.

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

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 (FileHandle file, void * buffer, size_t size)

    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 (FileHandle file, const void * buffer, size_t size)

    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 (FileHandle file, void * buffer, size_t size)

    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 (FileHandle file, void * buffer, size_t size)

    Wraps ReadFile(), retrying following a short read. Does not log on

    failure.

  • bool LoggingReadFileExactly (FileHandle file, void * buffer, size_t size)

    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 (FileHandle file, void * buffer, size_t size)

    Wraps ReadFile(), retrying following a short read. Logs an error on

    failure.

  • bool LoggingWriteFile (FileHandle file, const void * buffer, size_t size)

    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 (FileHandle file, void * buffer, size_t size)

    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 (FileHandle file, const void * buffer, size_t size)

    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, FileWriteMode mode, FilePermissions permissions)

    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, FileWriteMode mode, FilePermissions permissions)

    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, FileWriteMode mode, FilePermissions permissions)

    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, FileWriteMode mode, FilePermissions permissions)

    Wraps OpenFileForReadAndWrite(), logging an error if the operation

    fails.

    Returns

    The newly opened FileHandle, or an invalid FileHandle on failure.

  • FileOffset LoggingSeekFile (FileHandle file, FileOffset offset, int whence)

    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 (FileHandle file, FileOffset offset, int whence)

    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