Breakpoints

Macros

CUDBG_BREAKPOINT_HANDLE_ALL_USER_BREAKPOINTS

Special breakpoint handle - represents all non-special breakpoints that were inserted by the API user.

CUDBG_BREAKPOINT_HANDLE_BREAK_ON_LAUNCH

Break On Launch breakpoint handle - this breakpoint can be enabled/disabled with enableBreakpoint/disableBreakpoint.

CUDBG_BREAKPOINT_HANDLE_INTERNAL

Special breakpoint handle - internal breakpoint (e.g.

CUDBG_BREAKPOINT_HANDLE_INVALID

Invalid breakpoint handle.

CUDBG_BREAKPOINT_HANDLE_LEGACY

Special breakpoint handle - breakpoint inserted with setBreakpoint (handle-less).

CUDBG_BREAKPOINT_HANDLE_TRAP

Special breakpoint handle - hard-coded trap.

Enumerations

CUDBGAdjAddrAction

Describes which adjusted code address is to be returned.

Typedefs

CUDBGBreakpointHandle

GPU debugger breakpoint handle.

Variables

CUDBGResult(* CUDBGAPI_st::disableBreakpoint

Disable a breakpoint specified by its handle.

CUDBGResult(* CUDBGAPI_st::enableBreakpoint

Enable a breakpoint specified by its handle.

CUDBGResult(* CUDBGAPI_st::getAdjustedCodeAddress

Get the adjusted code address for a given code address for a given device.

CUDBGResult(* CUDBGAPI_st::getWarpHitBreakpoint

Get the handle of the breakpoint that the given warp hit.

CUDBGResult(* CUDBGAPI_st::insertBreakpoint

Set a breakpoint at the given instruction address for the given device.

CUDBGResult(* CUDBGAPI_st::isBreakpointEnabled

Check if a breakpoint specified by its handle is enabled.

CUDBGResult(* CUDBGAPI_st::removeBreakpoint

Remove a breakpoint specified by its handle.

CUDBGResult(* CUDBGAPI_st::setBreakpoint

Set a breakpoint at the given instruction address for the given device.

CUDBGResult(* CUDBGAPI_st::setBreakpoint31

Set a breakpoint at the given instruction address.

CUDBGResult(* CUDBGAPI_st::unsetBreakpoint

Unset a breakpoint at the given instruction address for the given device.

CUDBGResult(* CUDBGAPI_st::unsetBreakpoint31

Unset a breakpoint at the given instruction address.

Macros

CUDBG_BREAKPOINT_HANDLE_ALL_USER_BREAKPOINTS (0xFFFFFFFFFFFFFFFBULL)

Special breakpoint handle - represents all non-special breakpoints that were inserted by the API user.

This handle can be used to enable, disable, and remove all added breakpoints in a single call.

It can only be used as a handle in CUDBGAPI_st::removeBreakpoint, CUDBGAPI_st::enableBreakpoint, CUDBGAPI_st::disableBreakpoint functions.

If this handle is used and there are no breakpoints added by the user, the aforementioned API functions do not fail, instead the operation acts on no breakpoints, so calling e.g. CUDBGAPI_st::removeBreakpoint with this handle is fine if there are no breakpoints added by the user. They may still fail for other reasons.

Note

The set of breakpoints represented by this handle does not include the CUDBG_BREAKPOINT_HANDLE_BREAK_ON_LAUNCH breakpoint.

CUDBG_BREAKPOINT_HANDLE_BREAK_ON_LAUNCH (0xFFFFFFFFFFFFFFFCULL)

Break On Launch breakpoint handle - this breakpoint can be enabled/disabled with enableBreakpoint/disableBreakpoint.

It is hit once every time a kernel is launched. It can be hit by one or more warps, but only once. Only supports CUDA Kernel launches (both host-side and device-side launches).

CUDBG_BREAKPOINT_HANDLE_INTERNAL (0xFFFFFFFFFFFFFFFDULL)

Special breakpoint handle - internal breakpoint (e.g.

used internally for stepping)

CUDBG_BREAKPOINT_HANDLE_INVALID (0ULL)

Invalid breakpoint handle.

CUDBG_BREAKPOINT_HANDLE_LEGACY (0xFFFFFFFFFFFFFFFEULL)

Special breakpoint handle - breakpoint inserted with setBreakpoint (handle-less).

CUDBG_BREAKPOINT_HANDLE_TRAP (0xFFFFFFFFFFFFFFFFULL)

Special breakpoint handle - hard-coded trap.

Enumerations

enum CUDBGAdjAddrAction

Describes which adjusted code address is to be returned.

Values:

enumerator CUDBG_ADJ_PREVIOUS_ADDRESS

Get the adjusted previous code address.

enumerator CUDBG_ADJ_CURRENT_ADDRESS

Get the adjusted next code address.

enumerator CUDBG_ADJ_NEXT_ADDRESS

Get the adjusted current code address.

Typedefs

typedef uint64_t CUDBGBreakpointHandle

GPU debugger breakpoint handle.

Valid breakpoint handles will grow from 1. Handle values of removed breakpoints can be reused in some cases. It is not guaranteed that new (non-reused) breakpoint handles will always be increasing by 1, there can be gaps. A valid handle always corresponds to a single inserted breakpoint, and each breakpoint can only have one handle. Handles with the highest bit set are reserved for special purposes and can correspond to multiple breakpoints.