Dr. Memory
_drfuzz_fault_t Struct Reference

#include <drfuzz.h>

Data Fields

int fault_code
app_pc fault_pc
byte * access_address
thread_id_t thread_id
void * user_data

Detailed Description

Provides basic information about an occurrence of a "critical fault", which in drfuzz refers to a subset of signals (Unix) or exceptions (Windows) that (a) are likely to be caused by fuzz testing, (b) imply errors and/or vulnerabilities in the code of the target application, and (c) terminate execution if they are not caught and handled. By default, the set of "critical faults" is SIGSEGV and SIGBUS on Unix, and Access Violation on Windows. (In a future release, the "critical faults" will be configurable by the drfuzz client.) Also see comments on drfuzz_register_fault_event().

Where provided by callbacks from this API, this struct may be retained indefinitely. Additional information about a critical fault is provided by drfuzz_fault_ex_t, which duplicates some data from this struct, but may not be retained after a callback.

Field Documentation

◆ access_address

byte* _drfuzz_fault_t::access_address

For memory access faults only, the address of the failed access attempt.

◆ fault_code

int _drfuzz_fault_t::fault_code

Signal number (Unix) or exception code (Windows).

◆ fault_pc

app_pc _drfuzz_fault_t::fault_pc

The address within the target application where the fault occurred.

◆ thread_id

thread_id_t _drfuzz_fault_t::thread_id

The thread that executed the fault.

◆ user_data

void* _drfuzz_fault_t::user_data

Available for custom user data. To free the custom data when drfuzz deletes an instance of drfuzz_fault_t, use drfuzz_register_fault_delete_callback().

The documentation for this struct was generated from the following file: