Debuggers

This section contains library compounds for configuring Thallium debug output through the use of debuggers.


Types

Objects

typedef struct TL_Debugger_t TL_Debugger_t

A structure used to debug Thallium operations.

This structure can be created and passed to Thallium functions to receive debug messages. This is necessary to recieve errors and warnings, for example.

Descriptors

struct TL_DebuggerDescriptor_t

A structure describing a Thallium debugger object to be created.

This structure describes a debugger object to be created.

Public Members

TL_DebugSeverityFlags_t severities

Bit field of severity flags - messages of these severities will be reported.

TL_DebugSourceFlags_t sources

Bit field of source flags - messages from these sources will be reported.

TL_DebugCallbackfn_t callback

NULL or the callback function for the debugger to use (NULL reverts to the default Thallium debugger behaviour)

void *pointer

NULL or callback pointer for the user callback (callback) to recieve.

struct TL_DebuggerAttachmentDescriptor_t

A structure describing a Thallium debugger attachment.

This structure describes a debugger attachment.

A debug attachment refers to the idea of immutably ‘attaching’ a debugger to a context at creation time, allowing for more detailed debug output. More specifically, this enables API-specific debug functionality. For example, Vulkan debug utils are enabled for use by Vulkan renderers.

Public Members

const TL_Debugger_t *debugger

Debugger to link the attachment to.

Function Pointers

typedef void (*TL_DebugCallbackfn_t)(char *msg, TL_DebugSeverityFlags_t sev, TL_DebugSourceFlags_t src, void *ptr)

The function pointer type for custom debugger message callbacks.

This is the function pointer type for custom debugger message callbacks. This can be used to configure the handling of messages reported by Thallium debuggers.

See also

TL_Debugger_t

Param msg:

The basic message string reported by the Thallium API.

Param sev:

The severity of the debug message - see TL_DebugSeverityFlags_t.

Param src:

The source of the debug message (e.g. Thallium, Vulkan, etc) - see TL_DebugSourceFlags_t.

Param ptr:

NULL, or the user-configured pointer passed to the debugger creation descriptor

Enums

enum TL_DebugSeverityFlags_t

Enumeration containing severities to describe debug messages.

This enumeration contains severities to describe debug messages.

See also

TL_Debugger_t

Values:

enumerator TL_DEBUG_SEVERITY_VERBOSE_BIT = 0x10

Log messages.

enumerator TL_DEBUG_SEVERITY_NOTIF_BIT = 0x08

Notification messages.

enumerator TL_DEBUG_SEVERITY_WARNING_BIT = 0x04

Warning messages.

enumerator TL_DEBUG_SEVERITY_ERROR_BIT = 0x02

Error messages.

enumerator TL_DEBUG_SEVERITY_FATAL_BIT = 0x01

Fatal error messages.

enumerator TL_DEBUG_SEVERITY_ALL_BIT = 0x1f

All message severities.

enum TL_DebugSourceFlags_t

Enumeration containing sources to describe debug messages.

This enumeration contains message sources to describe debug messages.

See also

TL_Debugger_t

Values:

enumerator TL_DEBUG_SOURCE_THALLIUM_BIT = 0x20

Messages reported by core Thallium functions.

enumerator TL_DEBUG_SOURCE_VULKAN_BIT = 0x10

Messages reported by Vulkan renderer systems.

enumerator TL_DEBUG_SOURCE_ALL_BIT = 0x3f

All message sources.


Functions

TL_Debugger_t *TL_DebuggerCreate(const TL_DebuggerDescriptor_t descriptor)

Create a debugger with the specified configuration options.

This function creates a debugger with the specified configuration options.

See also

TL_Debugger_t

Parameters:
Returns:

Pointer to the new debugger

void TL_DebuggerDestroy(TL_Debugger_t *const debugger)

Free the given debugger object.

This function frees the specified debugger object.

Parameters:
  • debugger – The debugger object to free.