Debugger API

Introduction

This document describes the API for the set routines and data structures available in the CUDA library to any debugger.

Starting with 3.0, the CUDA debugger API includes several major changes, of which only few are directly visible to end-users:
  • Performance is greatly improved, both with respect to interactions with the debugger and the performance of applications being debugged.

  • The format of cubins has changed to ELF and, as a consequence, most restrictions on debug compilations have been lifted. More information about the new object format is included below.

The debugger API has significantly changed, reflected in the CUDA-GDB sources.

Debugger API

The CUDA Debugger API was developed with the goal of adhering to the following principles:

  • Policy free

  • Explicit

  • Axiomatic

  • Extensible

  • Machine oriented

Being explicit is another way of saying that we minimize the assumptions we make. As much as possible the API reflects machine state, not internal state.

There are two major "modes" of the devices: stopped or running. We switch between these modes explicitly with suspendDevice and resumeDevice, though the machine may suspend on its own accord, for example when hitting a breakpoint.

Only when stopped, can we query the machine's state. Warp state includes which function is it runnning, which block, which lanes are valid, etc.

ELF and DWARF

CUDA applications are compiled in ELF binary format.

DWARF device information is obtained through a CUDBGEvent of type CUDBG_EVENT_ELF_IMAGE_LOADED. This means that the information is not available until runtime, after the CUDA driver has loaded.

DWARF device information contains physical addresses for all device memory regions except for code memory. The address class field (DW_AT_address_class) is set for all device variables, and is used to indicate the memory segment type (ptxStorageKind). The physical addresses must be accessed using several segment-specific API calls:

For memory reads, see: For memory writes, see: Access to code memory requires a virtual address. This virtual address is embedded for all device code sections in the device ELF image. See the API call: Here is a typical DWARF entry for a device variable located in memory:
‎<2><321>: Abbrev Number: 18 (DW_TAG_formal_parameter)
     DW_AT_decl_file   : 27
     DW_AT_decl_line   : 5
     DW_AT_name        : res
     DW_AT_type        : <2c6>
     DW_AT_location    : 9 byte block: 3 18 0 0 0 0 0 0 0       (DW_OP_addr: 18)
     DW_AT_address_class: 7

The above shows that variable 'res' has an address class of 7 (ptxParamStorage). Its location information shows it is located at address 18 within the parameter memory segment.

Local variables are no longer spilled to local memory by default. The DWARF now contains variable-to-register mapping and liveness information for all variables. It can be the case that variables are spilled to local memory, and this is all contained in the DWARF information which is ULEB128 encoded (as a DW_OP_regx stack operation in the DW_AT_location attribute).

Here is a typical DWARF entry for a variable located in a local register:

‎ <3><359>: Abbrev Number: 20 (DW_TAG_variable)
     DW_AT_decl_file   : 27
     DW_AT_decl_line   : 7
     DW_AT_name        : c
     DW_AT_type        : <1aa>
     DW_AT_location    : 7 byte block: 90 b9 e2 90 b3 d6 4      (DW_OP_regx: 160631632185)
     DW_AT_address_class: 2
This shows variable 'c' has address class 2 (ptxRegStorage) and its location can be found by decoding the ULEB128 value, DW_OP_regx: 160631632185. See cuda-tdep.c in the cuda-gdb source drop for information on decoding this value and how to obtain which physical register holds this variable during a specific device PC range. Access to physical registers liveness information requires a 0-based physical PC. See the API call:

ABI Support

ABI support is handled through the following thread API calls. The return address is not accessible on the local stack and the API call must be used to access its value.

For more information, please refer to the ABI documentation titled "Fermi ABI: Application Binary Interface".

Exception Reporting

Some kernel exceptions are reported as device events and accessible via the API call: The reported exceptions are listed in the CUDBGException_t enum type. Each prefix, (Device, Warp, Lane), refers to the precision of the exception. That is, the lowest known execution unit that is responsible for the origin of the exception. All lane errors are precise; the exact instruction and lane that caused the error are known. Warp errors are typically within a few instructions of where the actual error occurred, but the exact lane within the warp is not known. On device errors, we _may_ know the _kernel_ that caused it. Explanations about each exception type can be found in the documentation of the struct.

Exception reporting is only supported on Fermi (sm_20 or greater).

Attaching and Detaching

The debug client must take the following steps to attach to a running CUDA application:

  1. Attach to the CPU process corresponding to the CUDA application. The CPU part of the application will be frozen at this point.

  2. Check to see if the CUDBG_IPC_FLAG_NAME variable is accessible from the memory space of the application. If not, it implies that the application has not loaded the CUDA driver, and the attaching to the application is complete.

  3. Make a dynamic function call to the function cudbgApiInit() with an argument of "2", i.e., "cudbgApiInit(2)". This causes a helper process to be forked off from the application, which assists in attaching to the CUDA process.

  4. Ensure that the initialization of the CUDA debug API is complete, or wait till API initialization is successful.

  5. Make the "initializeAttachStub()" API call to initialize the helper process that was forked off from the application earlier.

  6. Read the value of the CUDBG_ATTACH_HANDLER_AVAILABLE variable from the memory space of the application:

    • If the value is non-zero, resume the CUDA application so that more data can be collected about the application and sent to the debugger. When the application is resumed, the debug client can expect to receive various CUDA events from the CUDA application. Once all state has been collected, the debug client will receive the event CUDBG_EVENT_ATTACH_COMPLETE.

    • If the value is zero, there is no more attach data to collect. Set the CUDBG_IPC_FLAG_NAME variable to 1 in the application's process space, which enables further events from the CUDA application.

  7. At this point, attaching to the CUDA application is complete and all GPUs belonging to the CUDA application will be suspended.

The debug client must take the following steps to detach from a running CUDA application:

  1. Check to see if the CUDBG_IPC_FLAG_NAME variable is accessible from the memory space of the application, and that the CUDA debug API is initialized. If either of these conditions is not met, treat the application as CPU-only and detach from the application.

  2. Next, make the "clearAttachState" API call to prepare the CUDA application for detach.

  3. Read the value of the CUDBG_ATTACH_HANDLER_AVAILABLE variable from the memory space of the application. If the value is non-zero, make the "requestCleanupOnDetach" API call.

  4. Set the CUDBG_DEBUGGER_INITIALIZED variable to 0 in the memory space of the application. This makes sure the debugger is reinitialized from scratch if the debug client re-attaches to the application in the future.

  5. If the value of the CUDBG_ATTACH_HANDLER_AVAILABLE variable was found to be non-zero in step 3, delete all breakpoints and resume the CUDA application. This allows the CUDA driver to perform cleanups before the debug client detaches from it. Once the cleanup is complete, the debug client will receive the event CUDBG_EVENT_DETACH_COMPLETE.

  6. Set the CUDBG_IPC_FLAG_NAME variable to zero in the memory space of the application. This prevents any more callbacks from the CUDA application to the debugger.

  7. The client must then finalize the CUDA debug API.

  8. Finally, detach from the CPU part of the CUDA application. At this point all GPUs belonging to the CUDA application will be resumed.

Modules

Initialization

Description

Variables

CUDBGResult  ( *CUDBGAPI_st::finalize )( )
Finalize the API and free all memory.
CUDBGResult  ( *CUDBGAPI_st::initialize )( )
Initialize the API.

Variables

CUDBGResult ( *CUDBGAPI_st::finalize )( )

Finalize the API and free all memory.

See also:

initialize

Returns

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_COMMUNICATION_FAILURE, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::initialize )( )

Initialize the API.

See also:

finalize

Returns

CUDBG_SUCCESS, CUDBG_ERROR_UNKNOWN

Device Execution Control

Description

Variables

CUDBGResult  ( *CUDBGAPI_st::resumeDevice )( uint32_t dev )
Resume a suspended CUDA device.
CUDBGResult  ( *CUDBGAPI_st::singleStepWarp )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t* warpMask )
Single step an individual warp on a suspended CUDA device.
CUDBGResult  ( *CUDBGAPI_st::singleStepWarp40 )( uint32_t dev, uint32_t sm, uint32_t wp )
(DEPRECATED)Single step an individual warp on a suspended CUDA device. This function has been deprecated. Use singleStepWarp() instead.
CUDBGResult  ( *CUDBGAPI_st::suspendDevice )( uint32_t dev )
Suspends a running CUDA device.

Variables

CUDBGResult ( *CUDBGAPI_st::resumeDevice )( uint32_t dev )

Resume a suspended CUDA device.

See also:

suspendDevice

singleStepWarp

Parameters
dev
- device index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::singleStepWarp )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t* warpMask )

Single step an individual warp on a suspended CUDA device.

See also:

resumeDevice

suspendDevice

Parameters
dev
- device index
sm
- SM index
wp
- warp index
warpMask
- the warps that have been single-stepped
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::singleStepWarp40 )( uint32_t dev, uint32_t sm, uint32_t wp )

(DEPRECATED)Single step an individual warp on a suspended CUDA device. This function has been deprecated. Use singleStepWarp() instead.

See also:

resumeDevice

suspendDevice

singleStepWarp

Parameters
dev
- device index
sm
- SM index
wp
- warp index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::suspendDevice )( uint32_t dev )

Suspends a running CUDA device.

See also:

resumeDevice

singleStepWarp

Parameters
dev
- device index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED

Breakpoints

Description

Variables

CUDBGResult  ( *CUDBGAPI_st::setBreakpoint )( uint32_t dev, uint64_t addr )
Sets a breakpoint at the given instruction address for the given device.
CUDBGResult  ( *CUDBGAPI_st::setBreakpoint31 )( uint64_t addr )
Sets a breakpoint at the given instruction address. Deprecated in 3.2.
CUDBGResult  ( *CUDBGAPI_st::unsetBreakpoint )( uint32_t dev, uint64_t addr )
Unsets a breakpoint at the given instruction address for the given device.
CUDBGResult  ( *CUDBGAPI_st::unsetBreakpoint31 )( uint64_t addr )
Unsets a breakpoint at the given instruction address. Deprecated in 3.2.

Variables

CUDBGResult ( *CUDBGAPI_st::setBreakpoint )( uint32_t dev, uint64_t addr )

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

See also:

unsetBreakpoint

Parameters
dev
- the device index
addr
- instruction address
Returns

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INVALID_ADDRESS, CUDBG_ERROR_INVALID_DEVICE

CUDBGResult ( *CUDBGAPI_st::setBreakpoint31 )( uint64_t addr )

Sets a breakpoint at the given instruction address. Deprecated in 3.2.

See also:

unsetBreakpoint31

Parameters
addr
- instruction address
Returns

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INVALID_ADDRESS

CUDBGResult ( *CUDBGAPI_st::unsetBreakpoint )( uint32_t dev, uint64_t addr )

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

See also:

setBreakpoint

Parameters
dev
- the device index
addr
- instruction address
Returns

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INVALID_ADDRESS, CUDBG_ERROR_INVALID_DEVICE

CUDBGResult ( *CUDBGAPI_st::unsetBreakpoint31 )( uint64_t addr )

Unsets a breakpoint at the given instruction address. Deprecated in 3.2.

See also:

setBreakpoint31

Parameters
addr
- instruction address
Returns

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED

Device State Inspection

Description

Variables

CUDBGResult  ( *CUDBGAPI_st::memcheckReadErrorAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* address, ptxStorageKind* storage )
Get the address that memcheck detected an error on.
CUDBGResult  ( *CUDBGAPI_st::readActiveLanes )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* activeLanesMask )
Reads the bitmask of active lanes on a valid warp.
CUDBGResult  ( *CUDBGAPI_st::readBlockIdx )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* blockIdx )
Reads the CUDA block index running on a valid warp.
CUDBGResult  ( *CUDBGAPI_st::readBlockIdx32 )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim2* blockIdx )
Reads the two-dimensional CUDA block index running on a valid warp. Deprecated in 4.0.
CUDBGResult  ( *CUDBGAPI_st::readBrokenWarps )( uint32_t dev, uint32_t sm, uint64_t* brokenWarpsMask )
Reads the bitmask of warps that are at a breakpoint on a given SM.
CUDBGResult  ( *CUDBGAPI_st::readCallDepth )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* depth )
Reads the call depth (number of calls) for a given lane.
CUDBGResult  ( *CUDBGAPI_st::readCallDepth32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* depth )
Reads the call depth (number of calls) for a given warp. Deprecated in 4.0.
CUDBGResult  ( *CUDBGAPI_st::readCodeMemory )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the code memory segment.
CUDBGResult  ( *CUDBGAPI_st::readConstMemory )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the constant memory segment.
CUDBGResult  ( *CUDBGAPI_st::readGlobalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the global memory segment (entire 40-bit VA on Fermi+).
CUDBGResult  ( *CUDBGAPI_st::readGlobalMemory31 )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the global memory segment. Deprecated in 3.2.
CUDBGResult  ( *CUDBGAPI_st::readGridId )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* gridId )
Reads the CUDA grid index running on a valid warp.
CUDBGResult  ( *CUDBGAPI_st::readLaneException )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CUDBGException_t* exception )
Reads the exception type for a given lane.
CUDBGResult  ( *CUDBGAPI_st::readLaneStatus )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, bool* error )
Reads the status of the given lane. For specific error values, use readLaneException.
CUDBGResult  ( *CUDBGAPI_st::readLocalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the local memory segment.
CUDBGResult  ( *CUDBGAPI_st::readPC )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* pc )
Reads the PC on the given active lane.
CUDBGResult  ( *CUDBGAPI_st::readParamMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the param memory segment.
CUDBGResult  ( *CUDBGAPI_st::readPinnedMemory )( uint64_t addr, void* buf, uint32_t sz )
Reads content at pinned address in system memory.
CUDBGResult  ( *CUDBGAPI_st::readRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t* val )
Reads content of a hardware register.
CUDBGResult  ( *CUDBGAPI_st::readReturnAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t* ra )
Reads the physical return address for a call level.
CUDBGResult  ( *CUDBGAPI_st::readReturnAddress32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t* ra )
Reads the physical return address for a call level. Deprecated in 4.0.
CUDBGResult  ( *CUDBGAPI_st::readSharedMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the shared memory segment.
CUDBGResult  ( *CUDBGAPI_st::readSyscallCallDepth )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* depth )
Reads the call depth of syscalls for a given lane.
CUDBGResult  ( *CUDBGAPI_st::readTextureMemory )( uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t id, uint32_t dim, uint32_t* coords, void* buf, uint32_t sz )
Read the content of texture memory with given id and coords on sm_20 and lower.
CUDBGResult  ( *CUDBGAPI_st::readTextureMemoryBindless )( uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t texSymtabIndex, uint32_t dim, uint32_t* coords, void* buf, uint32_t sz )
Read the content of texture memory with given symtab index and coords on sm_30 and higher.
CUDBGResult  ( *CUDBGAPI_st::readThreadIdx )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CuDim3* threadIdx )
Reads the CUDA thread index running on valid lane.
CUDBGResult  ( *CUDBGAPI_st::readValidLanes )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* validLanesMask )
Reads the bitmask of valid lanes on a given warp.
CUDBGResult  ( *CUDBGAPI_st::readValidWarps )( uint32_t dev, uint32_t sm, uint64_t* validWarpsMask )
Reads the bitmask of valid warps on a given SM.
CUDBGResult  ( *CUDBGAPI_st::readVirtualPC )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* pc )
Reads the virtual PC on the given active lane.
CUDBGResult  ( *CUDBGAPI_st::readVirtualReturnAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t* ra )
Reads the virtual return address for a call level.
CUDBGResult  ( *CUDBGAPI_st::readVirtualReturnAddress32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t* ra )
Reads the virtual return address for a call level. Deprecated in 4.0.
CUDBGResult  ( *CUDBGAPI_st::writePinnedMemory )( uint64_t addr, const void* buf, uint32_t sz )
Writes content to pinned address in system memory.

Variables

CUDBGResult ( *CUDBGAPI_st::memcheckReadErrorAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* address, ptxStorageKind* storage )

Get the address that memcheck detected an error on.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
address
- returned address detected by memcheck
storage
- returned address class of address
Returns

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMCHECK_NOT_ENABLED, CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::readActiveLanes )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* activeLanesMask )

Reads the bitmask of active lanes on a valid warp.

See also:

readGridId

readBlockIdx

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

Parameters
dev
- device index
sm
- SM index
wp
- warp index
activeLanesMask
- the returned bitmask of active lanes
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readBlockIdx )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* blockIdx )

Reads the CUDA block index running on a valid warp.

See also:

readGridId

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

Parameters
dev
- device index
sm
- SM index
wp
- warp index
blockIdx
- the returned CUDA block index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readBlockIdx32 )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim2* blockIdx )

Reads the two-dimensional CUDA block index running on a valid warp. Deprecated in 4.0.

See also:

readGridId

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

Parameters
dev
- device index
sm
- SM index
wp
- warp index
blockIdx
- the returned CUDA block index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readBrokenWarps )( uint32_t dev, uint32_t sm, uint64_t* brokenWarpsMask )

Reads the bitmask of warps that are at a breakpoint on a given SM.

See also:

readGridId

readBlockIdx

readThreadIdx

readValidWarps

readValidLanes

readActiveLanes

Parameters
dev
- device index
sm
- SM index
brokenWarpsMask
- the returned bitmask of broken warps
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readCallDepth )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* depth )

Reads the call depth (number of calls) for a given lane.

See also:

readReturnAddress

readVirtualReturnAddress

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
depth
- the returned call depth
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readCallDepth32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* depth )

Reads the call depth (number of calls) for a given warp. Deprecated in 4.0.

See also:

readReturnAddress32

readVirtualReturnAddress32

Parameters
dev
- device index
sm
- SM index
wp
- warp index
depth
- the returned call depth
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readCodeMemory )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )
Parameters
dev
- device index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readConstMemory )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )

Reads content at address in the constant memory segment.

See also:

readCodeMemory

readGlobalMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

Parameters
dev
- device index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readGlobalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )

Reads content at address in the global memory segment (entire 40-bit VA on Fermi+).

See also:

readCodeMemory

readConstMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM

CUDBGResult ( *CUDBGAPI_st::readGlobalMemory31 )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )

Reads content at address in the global memory segment. Deprecated in 3.2.

See also:

readCodeMemory

readConstMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

Parameters
dev
- device index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readGridId )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* gridId )

Reads the CUDA grid index running on a valid warp.

See also:

readBlockIdx

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

Parameters
dev
- device index
sm
- SM index
wp
- warp index
gridId
- the returned CUDA grid index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readLaneException )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CUDBGException_t* exception )

Reads the exception type for a given lane.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
exception
- the returned exception type
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readLaneStatus )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, bool* error )

Reads the status of the given lane. For specific error values, use readLaneException.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
error
- true if there is an error
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readLocalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )
Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readPC )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* pc )
Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
pc
- the returned PC
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readParamMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void* buf, uint32_t sz )
Parameters
dev
- device index
sm
- SM index
wp
- warp index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readPinnedMemory )( uint64_t addr, void* buf, uint32_t sz )
Parameters
addr
- system memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t* val )
Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
regno
- register index
val
- buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readReturnAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t* ra )

Reads the physical return address for a call level.

See also:

readCallDepth

readVirtualReturnAddress

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
level
- the specified call level
ra
- the returned return address for level
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_CALL_LEVEL, CUDBG_ERROR_ZERO_CALL_DEPTH, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readReturnAddress32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t* ra )

Reads the physical return address for a call level. Deprecated in 4.0.

See also:

readCallDepth32

readVirtualReturnAddress32

Parameters
dev
- device index
sm
- SM index
wp
- warp index
level
- the specified call level
ra
- the returned return address for level
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_CALL_LEVEL, CUDBG_ERROR_ZERO_CALL_DEPTH, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readSharedMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void* buf, uint32_t sz )

Reads content at address in the shared memory segment.

See also:

readCodeMemory

readConstMemory

readGlobalMemory

readParamMemory

readLocalMemory

readTextureMemory

readRegister

readPC

Parameters
dev
- device index
sm
- SM index
wp
- warp index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readSyscallCallDepth )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* depth )

Reads the call depth of syscalls for a given lane.

See also:

readReturnAddress

readVirtualReturnAddress

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
depth
- the returned call depth
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readTextureMemory )( uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t id, uint32_t dim, uint32_t* coords, void* buf, uint32_t sz )

Read the content of texture memory with given id and coords on sm_20 and lower. Read the content of texture memory with given id and coords on sm_20 and lower.

On sm_30 and higher, use readTextureMemoryBindless instead.

See also:

readCodeMemory

readConstMemory

readGlobalMemory

readParamMemory

readSharedMemory

readLocalMemory

readRegister

readPC

Parameters
devId
- device index
vsm
- SM index
wp
- warp index
id
- texture id (the value of DW_AT_location attribute in the relocated ELF image)
dim
- texture dimension (1 to 4)
coords
- array of coordinates of size dim
buf
- result buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readTextureMemoryBindless )( uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t texSymtabIndex, uint32_t dim, uint32_t* coords, void* buf, uint32_t sz )

Read the content of texture memory with given symtab index and coords on sm_30 and higher. Read the content of texture memory with given symtab index and coords on sm_30 and higher.

For sm_20 and lower, use readTextureMemory instead.

See also:

readCodeMemory

readConstMemory

readGlobalMemory

readParamMemory

readSharedMemory

readLocalMemory

readRegister

readPC

Parameters
devId
- device index
vsm
- SM index
wp
- warp index
texSymtabIndex
- global symbol table index of the texture symbol
dim
- texture dimension (1 to 4)
coords
- array of coordinates of size dim
buf
- result buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readThreadIdx )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CuDim3* threadIdx )

Reads the CUDA thread index running on valid lane.

See also:

readGridId

readBlockIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
threadIdx
- the returned CUDA thread index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readValidLanes )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* validLanesMask )

Reads the bitmask of valid lanes on a given warp.

See also:

readGridId

readBlockIdx

readThreadIdx

readBrokenWarps

readValidWarps

readActiveLanes

Parameters
dev
- device index
sm
- SM index
wp
- warp index
validLanesMask
- the returned bitmask of valid lanes
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readValidWarps )( uint32_t dev, uint32_t sm, uint64_t* validWarpsMask )

Reads the bitmask of valid warps on a given SM.

See also:

readGridId

readBlockIdx

readThreadIdx

readBrokenWarps

readValidLanes

readActiveLanes

Parameters
dev
- device index
sm
- SM index
validWarpsMask
- the returned bitmask of valid warps
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readVirtualPC )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* pc )

Reads the virtual PC on the given active lane.

See also:

readPC

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
pc
- the returned PC
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_UNKNOWN_FUNCTION

CUDBGResult ( *CUDBGAPI_st::readVirtualReturnAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t* ra )

Reads the virtual return address for a call level.

See also:

readCallDepth

readReturnAddress

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
level
- the specified call level
ra
- the returned virtual return address for level
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_CALL_LEVEL, CUDBG_ERROR_ZERO_CALL_DEPTH, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INTERNAL

CUDBGResult ( *CUDBGAPI_st::readVirtualReturnAddress32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t* ra )

Reads the virtual return address for a call level. Deprecated in 4.0.

See also:

readCallDepth32

readReturnAddress32

Parameters
dev
- device index
sm
- SM index
wp
- warp index
level
- the specified call level
ra
- the returned virtual return address for level
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_CALL_LEVEL, CUDBG_ERROR_ZERO_CALL_DEPTH, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INTERNAL

CUDBGResult ( *CUDBGAPI_st::writePinnedMemory )( uint64_t addr, const void* buf, uint32_t sz )
Parameters
addr
- system memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_UNINITIALIZED

Device State Alteration

Description

Variables

CUDBGResult  ( *CUDBGAPI_st::writeGlobalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )
Writes content to address in the global memory segment (entire 40-bit VA on Fermi+).
CUDBGResult  ( *CUDBGAPI_st::writeGlobalMemory31 )( uint32_t dev, uint64_t addr, const void* buf, uint32_t sz )
Writes content to address in the global memory segment. Deprecated in 3.2.
CUDBGResult  ( *CUDBGAPI_st::writeLocalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )
Writes content to address in the local memory segment.
CUDBGResult  ( *CUDBGAPI_st::writeParamMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void* buf, uint32_t sz )
Writes content to address in the param memory segment.
CUDBGResult  ( *CUDBGAPI_st::writeRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t val )
Writes content to a hardware register.
CUDBGResult  ( *CUDBGAPI_st::writeSharedMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void* buf, uint32_t sz )
Writes content to address in the shared memory segment.

Variables

CUDBGResult ( *CUDBGAPI_st::writeGlobalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )

Writes content to address in the global memory segment (entire 40-bit VA on Fermi+).

See also:

writeParamMemory

writeSharedMemory

writeLocalMemory

writeRegister

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM

CUDBGResult ( *CUDBGAPI_st::writeGlobalMemory31 )( uint32_t dev, uint64_t addr, const void* buf, uint32_t sz )

Writes content to address in the global memory segment. Deprecated in 3.2.

See also:

writeParamMemory

writeSharedMemory

writeLocalMemory

writeRegister

Parameters
dev
- device index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::writeLocalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )

Writes content to address in the local memory segment.

See also:

writeGlobalMemory

writeParamMemory

writeSharedMemory

writeRegister

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::writeParamMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void* buf, uint32_t sz )

Writes content to address in the param memory segment.

See also:

writeGlobalMemory

writeSharedMemory

writeLocalMemory

writeRegister

Parameters
dev
- device index
sm
- SM index
wp
- warp index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::writeRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t val )

Writes content to a hardware register.

See also:

writeGlobalMemory

writeParamMemory

writeSharedMemory

writeLocalMemory

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
regno
- register index
val
- buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::writeSharedMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void* buf, uint32_t sz )

Writes content to address in the shared memory segment.

See also:

writeGlobalMemory

writeParamMemory

writeLocalMemory

writeRegister

Parameters
dev
- device index
sm
- SM index
wp
- warp index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

Grid Properties

Description

Variables

CUDBGResult  ( *CUDBGAPI_st::getBlockDim )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* blockDim )
Get the number of threads in the given block.
CUDBGResult  ( *CUDBGAPI_st::getElfImage )( uint32_t dev, uint32_t sm, uint32_t wp, bool  relocated, void* *elfImage, uint64_t* size )
Get the relocated or non-relocated ELF image and size for the grid on the given device.
CUDBGResult  ( *CUDBGAPI_st::getElfImage32 )( uint32_t dev, uint32_t sm, uint32_t wp, bool  relocated, void* *elfImage, uint32_t* size )
Get the relocated or non-relocated ELF image and size for the grid on the given device. Deprecated in 4.0.
CUDBGResult  ( *CUDBGAPI_st::getGridAttribute )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttribute attr, uint64_t* value )
Get the value of a grid attribute.
CUDBGResult  ( *CUDBGAPI_st::getGridAttributes )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttributeValuePair* pairs, uint32_t numPairs )
Get several grid attribute values in a single API call.
CUDBGResult  ( *CUDBGAPI_st::getGridDim )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* gridDim )
Get the number of blocks in the given grid.
CUDBGResult  ( *CUDBGAPI_st::getGridDim32 )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim2* gridDim )
Get the number of blocks in the given grid. Deprecated in 4.0.
CUDBGResult  ( *CUDBGAPI_st::getTID )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* tid )
Get the ID of the Linux thread hosting the context of the grid.

Variables

CUDBGResult ( *CUDBGAPI_st::getBlockDim )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* blockDim )

Get the number of threads in the given block.

See also:

getGridDim

Parameters
dev
- device index
sm
- SM index
wp
- warp index
blockDim
- the returned number of threads in the block
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getElfImage )( uint32_t dev, uint32_t sm, uint32_t wp, bool  relocated, void* *elfImage, uint64_t* size )

Get the relocated or non-relocated ELF image and size for the grid on the given device.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
relocated
- set to true to specify the relocated ELF image, false otherwise
*elfImage
- pointer to the ELF image
size
- size of the ELF image (64 bits)
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getElfImage32 )( uint32_t dev, uint32_t sm, uint32_t wp, bool  relocated, void* *elfImage, uint32_t* size )

Get the relocated or non-relocated ELF image and size for the grid on the given device. Deprecated in 4.0.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
relocated
- set to true to specify the relocated ELF image, false otherwise
*elfImage
- pointer to the ELF image
size
- size of the ELF image (32 bits)
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridAttribute )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttribute attr, uint64_t* value )

Get the value of a grid attribute.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
attr
- the attribute
value
- the returned value of the attribute
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_ATTRIBUTE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridAttributes )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttributeValuePair* pairs, uint32_t numPairs )

Get several grid attribute values in a single API call.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
pairs
- array of attribute/value pairs
numPairs
- the number of attribute/values pairs in the array
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_ATTRIBUTE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridDim )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* gridDim )

Get the number of blocks in the given grid.

See also:

getBlockDim

Parameters
dev
- device index
sm
- SM index
wp
- warp index
gridDim
- the returned number of blocks in the grid
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridDim32 )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim2* gridDim )

Get the number of blocks in the given grid. Deprecated in 4.0.

See also:

getBlockDim

Parameters
dev
- device index
sm
- SM index
wp
- warp index
gridDim
- the returned number of blocks in the grid
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getTID )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* tid )

Get the ID of the Linux thread hosting the context of the grid.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
tid
- the returned thread id
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

Device Properties

Description

Variables

CUDBGResult  ( *CUDBGAPI_st::getDeviceType )( uint32_t dev, char* buf, uint32_t sz )
Get the string description of the device.
CUDBGResult  ( *CUDBGAPI_st::getNumDevices )( uint32_t* numDev )
Get the number of installed CUDA devices.
CUDBGResult  ( *CUDBGAPI_st::getNumLanes )( uint32_t dev, uint32_t* numLanes )
Get the number of lanes per warp on the device.
CUDBGResult  ( *CUDBGAPI_st::getNumRegisters )( uint32_t dev, uint32_t* numRegs )
Get the number of registers per lane on the device.
CUDBGResult  ( *CUDBGAPI_st::getNumSMs )( uint32_t dev, uint32_t* numSMs )
Get the total number of SMs on the device.
CUDBGResult  ( *CUDBGAPI_st::getNumWarps )( uint32_t dev, uint32_t* numWarps )
Get the number of warps per SM on the device.
CUDBGResult  ( *CUDBGAPI_st::getSmType )( uint32_t dev, char* buf, uint32_t sz )
Get the SM type of the device.

Variables

CUDBGResult ( *CUDBGAPI_st::getDeviceType )( uint32_t dev, char* buf, uint32_t sz )

Get the string description of the device.

See also:

getSMType

Parameters
dev
- device index
buf
- the destination buffer
sz
- the size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_BUFFER_TOO_SMALL, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumDevices )( uint32_t* numDev )

Get the number of installed CUDA devices.

See also:

getNumSMs

getNumWarps

getNumLanes

getNumRegisters

Parameters
numDev
- the returned number of devices
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumLanes )( uint32_t dev, uint32_t* numLanes )

Get the number of lanes per warp on the device.

See also:

getNumDevices

getNumSMs

getNumWarps

getNumRegisters

Parameters
dev
- device index
numLanes
- the returned number of lanes
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumRegisters )( uint32_t dev, uint32_t* numRegs )

Get the number of registers per lane on the device.

See also:

getNumDevices

getNumSMs

getNumWarps

getNumLanes

Parameters
dev
- device index
numRegs
- the returned number of registers
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumSMs )( uint32_t dev, uint32_t* numSMs )

Get the total number of SMs on the device.

See also:

getNumDevices

getNumWarps

getNumLanes

getNumRegisters

Parameters
dev
- device index
numSMs
- the returned number of SMs
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumWarps )( uint32_t dev, uint32_t* numWarps )

Get the number of warps per SM on the device.

See also:

getNumDevices

getNumSMs

getNumLanes

getNumRegisters

Parameters
dev
- device index
numWarps
- the returned number of warps
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getSmType )( uint32_t dev, char* buf, uint32_t sz )

Get the SM type of the device.

See also:

getDeviceType

Parameters
dev
- device index
buf
- the destination buffer
sz
- the size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_BUFFER_TOO_SMALL, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

DWARF Utilities

Description

Variables

CUDBGResult  ( *CUDBGAPI_st::disassemble )( uint32_t dev, uint64_t addr, uint32_t* instSize, char* buf, uint32_t sz )
Disassemble instruction at instruction address.
CUDBGResult  ( *CUDBGAPI_st::getHostAddrFromDeviceAddr )( uint32_t dev, uint64_t device_addr, uint64_t* host_addr )
given a device virtual address, return a corresponding system memory virtual address.
CUDBGResult  ( *CUDBGAPI_st::getPhysicalRegister30 )( uint64_t pc, char* reg, uint32_t* buf, uint32_t sz, uint32_t* numPhysRegs, CUDBGRegClass* regClass )
(DEPRECATED) Get the physical register number(s) assigned to a virtual register name 'reg' at a given PC, if 'reg' is live at that PC. The function has been deprecated. use getWarpPhysicalRegister instead.
CUDBGResult  ( *CUDBGAPI_st::getPhysicalRegister40 )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t pc, char* reg, uint32_t* buf, uint32_t sz, uint32_t* numPhysRegs, CUDBGRegClass* regClass )
Get the physical register number(s) assigned to a virtual register name 'reg' at a given PC, if 'reg' is live at that PC.
CUDBGResult  ( *CUDBGAPI_st::isDeviceCodeAddress )( uintptr_t addr, bool* isDeviceAddress )
Determines whether a virtual address resides within device code.
CUDBGResult  ( *CUDBGAPI_st::lookupDeviceCodeSymbol )( char* symName, bool* symFound, uintptr_t* symAddr )
Determines whether a symbol represents a function in device code and returns its virtual address.

Variables

CUDBGResult ( *CUDBGAPI_st::disassemble )( uint32_t dev, uint64_t addr, uint32_t* instSize, char* buf, uint32_t sz )

Disassemble instruction at instruction address.

Parameters
dev
- device index
addr
- instruction address
instSize
- instruction size (32 or 64 bits)
buf
- disassembled instruction buffer
sz
- disassembled instruction buffer size
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::getHostAddrFromDeviceAddr )( uint32_t dev, uint64_t device_addr, uint64_t* host_addr )

given a device virtual address, return a corresponding system memory virtual address.

See also:

readGlobalMemory

writeGlobalMemory

Parameters
dev
- device index
device_addr
- device memory address
host_addr
- returned system memory address
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_CONTEXT, CUDBG_ERROR_INVALID_MEMORY_SEGMENT

CUDBGResult ( *CUDBGAPI_st::getPhysicalRegister30 )( uint64_t pc, char* reg, uint32_t* buf, uint32_t sz, uint32_t* numPhysRegs, CUDBGRegClass* regClass )

(DEPRECATED) Get the physical register number(s) assigned to a virtual register name 'reg' at a given PC, if 'reg' is live at that PC. The function has been deprecated. use getWarpPhysicalRegister instead.

Parameters
pc
- Program counter
reg
- virtual register index
buf
- physical register name(s)
sz
- the physical register name buffer size
numPhysRegs
- number of physical register names returned
regClass
- the class of the physical registers
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UKNOWN_FUNCTION, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::getPhysicalRegister40 )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t pc, char* reg, uint32_t* buf, uint32_t sz, uint32_t* numPhysRegs, CUDBGRegClass* regClass )

Get the physical register number(s) assigned to a virtual register name 'reg' at a given PC, if 'reg' is live at that PC. Get the physical register number(s) assigned to a virtual register name 'reg' at a given PC, if 'reg' is live at that PC. If a virtual register name is mapped to more than one physical register, the physical register with the lowest physical register index will contain the highest bits of the virtual register, and the the physical register with the highest physical register index will contain the lowest bits.

Parameters
dev
- device index
sm
- SM index
wp
- warp indx
pc
- Program counter
reg
- virtual register index
buf
- physical register name(s)
sz
- the physical register name buffer size
numPhysRegs
- number of physical register names returned
regClass
- the class of the physical registers
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UKNOWN_FUNCTION, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::isDeviceCodeAddress )( uintptr_t addr, bool* isDeviceAddress )

Determines whether a virtual address resides within device code.

Parameters
addr
- virtual address
isDeviceAddress
- true if address resides within device code
Returns

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UNINITIALIZED, CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::lookupDeviceCodeSymbol )( char* symName, bool* symFound, uintptr_t* symAddr )

Determines whether a symbol represents a function in device code and returns its virtual address.

Parameters
symName
- symbol name
symFound
- set to true if the symbol is found
symAddr
- the symbol virtual address if found
Returns

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UNINITIALIZED, CUDBG_SUCCESS

Events

Description

One of those events will create a CUDBGEvent:

  • the elf image of the current kernel has been loaded and the addresses within its DWARF sections have been relocated (and can now be used to set breakpoints),

  • a device breakpoint has been hit,

  • a CUDA kernel is ready to be launched,

  • a CUDA kernel has terminated.

When a CUDBGEvent is created, the debugger is notified by calling the callback functions registered with setNotifyNewEventCallback() after the API struct initialization. It is up to the debugger to decide what method is best to be notified. The debugger API routines cannot be called from within the callback function or the routine will return an error.

Upon notification the debugger is responsible for handling the CUDBGEvents in the event queue by using CUDBGAPI_st::getNextEvent(), and for acknowledging the debugger API that the event has been handled by calling CUDBGAPI_st::acknowledgeEvent(). In the case of an event raised by the device itself, such as a breakpoint being hit, the event queue will be empty. It is the responsibility of the debugger to inspect the hardware any time a CUDBGEvent is received.

Example:

CUDBGEvent event;
CUDBGResult res;
for (res = cudbgAPI->getNextEvent(&event);
     res == CUDBG_SUCCESS && event.kind != CUDBG_EVENT_INVALID;
     res = cudbgAPI->getNextEvent(&event)) {
    switch (event.kind)
        {
        case CUDBG_EVENT_ELF_IMAGE_LOADED:
            //...
            break;
        case CUDBG_EVENT_KERNEL_READY:
            //...
            break;
        case CUDBG_EVENT_KERNEL_FINISHED:
            //...
            break;
        default:
            error(...);
        }
    }

See cuda-tdep.c and cuda-linux-nat.c files in the cuda-gdb source code for a more detailed example on how to use CUDBGEvent.

Classes

struct 
Event information container.
struct 
Event information container. Deprecated in 3.1.
struct 
Event information container. Deprecated in 4.0.
struct 
Event information container. Deprecated in 4.2.
struct 
Event information passed to callback set with setNotifyNewEventCallback function.
struct 
Event information passed to callback set with setNotifyNewEventCallback function. Deprecated in 4.1.

Typedefs

typedef void  ( *CUDBGNotifyNewEventCallback )( CUDBGEventCallbackData* data )
function type of the function called to nofify debugger of the presence of a new event in the event queue.
typedef void  ( *CUDBGNotifyNewEventCallback31 )( void* data )
function type of the function called to nofify debugger of the presence of a new event in the event queue. Deprecated in 3.2.

Enumerations

enum CUDBGEventKind
CUDA Kernel Events.

Variables

CUDBGResult  ( *CUDBGAPI_st::acknowledgeEvent30 )( CUDBGEvent30* event )
Inform the debugger API that the event has been processed. Deprecated in 3.1.
CUDBGResult  ( *CUDBGAPI_st::acknowledgeEvents42 )( )
Inform the debugger API that synchronous events have been processed. Deprecated in 5.0.
CUDBGResult  ( *CUDBGAPI_st::acknowledgeSyncEvents )( )
Inform the debugger API that synchronous events have been processed.
CUDBGResult  ( *CUDBGAPI_st::getNextAsyncEvent )( CUDBGEvent* event )
Copies the next available event in the asynchronous event queue into 'event' and removes it from the queue. The asynchronous event queue is held separate from the normal event queue, and does not require acknowledgement from the debug client.
CUDBGResult  ( *CUDBGAPI_st::getNextEvent30 )( CUDBGEvent30* event )
Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 3.1.
CUDBGResult  ( *CUDBGAPI_st::getNextEvent32 )( CUDBGEvent32* event )
Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 4.0.
CUDBGResult  ( *CUDBGAPI_st::getNextEvent42 )( CUDBGEvent42* event )
Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 5.0.
CUDBGResult  ( *CUDBGAPI_st::getNextSyncEvent )( CUDBGEvent* event )
Copies the next available event in the synchronous event queue into 'event' and removes it from the queue.
CUDBGResult  ( *CUDBGAPI_st::setNotifyNewEventCallback )( CUDBGNotifyNewEventCallback callback )
Provides the API with the function to call to notify the debugger of a new application or device event.
CUDBGResult  ( *CUDBGAPI_st::setNotifyNewEventCallback31 )( CUDBGNotifyNewEventCallback31 callback, void* data )
Provides the API with the function to call to notify the debugger of a new application or device event. Deprecated in 3.2.
CUDBGResult  ( *CUDBGAPI_st::setNotifyNewEventCallback40 )( CUDBGNotifyNewEventCallback40 callback )
Provides the API with the function to call to notify the debugger of a new application or device event. Deprecated in 4.1.

Typedefs

void ( *CUDBGNotifyNewEventCallback )( CUDBGEventCallbackData* data )

function type of the function called to nofify debugger of the presence of a new event in the event queue.

void ( *CUDBGNotifyNewEventCallback31 )( void* data )

function type of the function called to nofify debugger of the presence of a new event in the event queue. Deprecated in 3.2.

Enumerations

enum CUDBGEventKind

CUDA Kernel Events.

Values
CUDBG_EVENT_INVALID = 0x000
Invalid event.
CUDBG_EVENT_ELF_IMAGE_LOADED = 0x001
The ELF image for a CUDA source module is available.
CUDBG_EVENT_KERNEL_READY = 0x002
A CUDA kernel is about to be launched.
CUDBG_EVENT_KERNEL_FINISHED = 0x003
A CUDA kernel has terminated.
CUDBG_EVENT_INTERNAL_ERROR = 0x004
An internal error occur. The debugging framework may be unstable.
CUDBG_EVENT_CTX_PUSH = 0x005
A CUDA context was pushed.
CUDBG_EVENT_CTX_POP = 0x006
A CUDA CTX was popped.
CUDBG_EVENT_CTX_CREATE = 0x007
A CUDA CTX was created.
CUDBG_EVENT_CTX_DESTROY = 0x008
A CUDA context was destroyed.
CUDBG_EVENT_TIMEOUT = 0x009
An timeout event is sent at regular interval. This event can safely ge ignored.
CUDBG_EVENT_ATTACH_COMPLETE = 0x00a
The attach process has completed and debugging of device code may start.
CUDBG_EVENT_DETACH_COMPLETE = 0x00b

Variables

CUDBGResult ( *CUDBGAPI_st::acknowledgeEvent30 )( CUDBGEvent30* event )

Inform the debugger API that the event has been processed. Deprecated in 3.1.

Parameters
event
- pointer to the event that has been processed
Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::acknowledgeEvents42 )( )

Inform the debugger API that synchronous events have been processed. Deprecated in 5.0.

Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::acknowledgeSyncEvents )( )

Inform the debugger API that synchronous events have been processed.

Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::getNextAsyncEvent )( CUDBGEvent* event )

Copies the next available event in the asynchronous event queue into 'event' and removes it from the queue. The asynchronous event queue is held separate from the normal event queue, and does not require acknowledgement from the debug client.

Parameters
event
- pointer to an event container where to copy the event parameters
Returns

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextEvent30 )( CUDBGEvent30* event )

Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 3.1.

Parameters
event
- pointer to an event container where to copy the event parameters
Returns

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextEvent32 )( CUDBGEvent32* event )

Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 4.0.

Parameters
event
- pointer to an event container where to copy the event parameters
Returns

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextEvent42 )( CUDBGEvent42* event )

Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 5.0.

Parameters
event
- pointer to an event container where to copy the event parameters
Returns

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextSyncEvent )( CUDBGEvent* event )

Copies the next available event in the synchronous event queue into 'event' and removes it from the queue.

Parameters
event
- pointer to an event container where to copy the event parameters
Returns

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::setNotifyNewEventCallback )( CUDBGNotifyNewEventCallback callback )

Provides the API with the function to call to notify the debugger of a new application or device event.

Parameters
callback
- the callback function
Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::setNotifyNewEventCallback31 )( CUDBGNotifyNewEventCallback31 callback, void* data )

Provides the API with the function to call to notify the debugger of a new application or device event. Deprecated in 3.2.

Parameters
callback
- the callback function
data
- a pointer to be passed to the callback when called
Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::setNotifyNewEventCallback40 )( CUDBGNotifyNewEventCallback40 callback )

Provides the API with the function to call to notify the debugger of a new application or device event. Deprecated in 4.1.

Parameters
callback
- the callback function
Returns

CUDBG_SUCCESS

Data Structures

Here are the data structures with brief descriptions:

cudbgGetAPI
The CUDA debugger API routines
CUDBGEvent
Event information container
CUDBGEvent30
Event information container. Deprecated in 3.1
CUDBGEvent30::​CUDBGEvent30::​cases30_st
CUDBGEvent30::​CUDBGEvent30::​cases30_st::​CUDBGEvent30::​cases30_st::​elfImageLoaded30_st
CUDBGEvent30::​CUDBGEvent30::​cases30_st::​CUDBGEvent30::​cases30_st::​kernelFinished30_st
CUDBGEvent30::​CUDBGEvent30::​cases30_st::​CUDBGEvent30::​cases30_st::​kernelReady30_st
CUDBGEvent32
Event information container. Deprecated in 4.0
CUDBGEvent32::​CUDBGEvent32::​cases32_st
CUDBGEvent32::​CUDBGEvent32::​cases32_st::​CUDBGEvent32::​cases32_st::​contextCreate32_st
CUDBGEvent32::​CUDBGEvent32::​cases32_st::​CUDBGEvent32::​cases32_st::​contextDestroy32_st
CUDBGEvent32::​CUDBGEvent32::​cases32_st::​CUDBGEvent32::​cases32_st::​contextPop32_st
CUDBGEvent32::​CUDBGEvent32::​cases32_st::​CUDBGEvent32::​cases32_st::​contextPush32_st
CUDBGEvent32::​CUDBGEvent32::​cases32_st::​CUDBGEvent32::​cases32_st::​elfImageLoaded32_st
CUDBGEvent32::​CUDBGEvent32::​cases32_st::​CUDBGEvent32::​cases32_st::​kernelFinished32_st
CUDBGEvent32::​CUDBGEvent32::​cases32_st::​CUDBGEvent32::​cases32_st::​kernelReady32_st
CUDBGEvent42
Event information container. Deprecated in 4.2
CUDBGEvent42::​CUDBGEvent42::​cases42_st
CUDBGEvent42::​CUDBGEvent42::​cases42_st::​CUDBGEvent42::​cases42_st::​contextCreate42_st
CUDBGEvent42::​CUDBGEvent42::​cases42_st::​CUDBGEvent42::​cases42_st::​contextDestroy42_st
CUDBGEvent42::​CUDBGEvent42::​cases42_st::​CUDBGEvent42::​cases42_st::​contextPop42_st
CUDBGEvent42::​CUDBGEvent42::​cases42_st::​CUDBGEvent42::​cases42_st::​contextPush42_st
CUDBGEvent42::​CUDBGEvent42::​cases42_st::​CUDBGEvent42::​cases42_st::​elfImageLoaded42_st
CUDBGEvent42::​CUDBGEvent42::​cases42_st::​CUDBGEvent42::​cases42_st::​kernelFinished42_st
CUDBGEvent42::​CUDBGEvent42::​cases42_st::​CUDBGEvent42::​cases42_st::​kernelReady42_st
CUDBGEvent::​CUDBGEvent::​cases_st
CUDBGEvent::​CUDBGEvent::​cases_st::​CUDBGEvent::​cases_st::​contextCreate_st
CUDBGEvent::​CUDBGEvent::​cases_st::​CUDBGEvent::​cases_st::​contextDestroy_st
CUDBGEvent::​CUDBGEvent::​cases_st::​CUDBGEvent::​cases_st::​contextPop_st
CUDBGEvent::​CUDBGEvent::​cases_st::​CUDBGEvent::​cases_st::​contextPush_st
CUDBGEvent::​CUDBGEvent::​cases_st::​CUDBGEvent::​cases_st::​elfImageLoaded_st
CUDBGEvent::​CUDBGEvent::​cases_st::​CUDBGEvent::​cases_st::​internalError_st
CUDBGEvent::​CUDBGEvent::​cases_st::​CUDBGEvent::​cases_st::​kernelFinished_st
CUDBGEvent::​CUDBGEvent::​cases_st::​CUDBGEvent::​cases_st::​kernelReady_st
CUDBGEventCallbackData
Event information passed to callback set with setNotifyNewEventCallback function
CUDBGEventCallbackData40
Event information passed to callback set with setNotifyNewEventCallback function. Deprecated in 4.1

CUDBGAPI_st Struct Reference

Description

The CUDA debugger API routines.

Public Variables

CUDBGResult  ( *acknowledgeEvent30 )( CUDBGEvent30* event )
Inform the debugger API that the event has been processed. Deprecated in 3.1.
CUDBGResult  ( *acknowledgeEvents42 )( )
Inform the debugger API that synchronous events have been processed. Deprecated in 5.0.
CUDBGResult  ( *acknowledgeSyncEvents )( )
Inform the debugger API that synchronous events have been processed.
CUDBGResult  ( *clearAttachState )( )
Clear attach-specific state prior to detach.
CUDBGResult  ( *disassemble )( uint32_t dev, uint64_t addr, uint32_t* instSize, char* buf, uint32_t sz )
Disassemble instruction at instruction address.
CUDBGResult  ( *finalize )( )
Finalize the API and free all memory.
CUDBGResult  ( *getBlockDim )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* blockDim )
Get the number of threads in the given block.
CUDBGResult  ( *getDeviceType )( uint32_t dev, char* buf, uint32_t sz )
Get the string description of the device.
CUDBGResult  ( *getElfImage )( uint32_t dev, uint32_t sm, uint32_t wp, bool  relocated, void* *elfImage, uint64_t* size )
Get the relocated or non-relocated ELF image and size for the grid on the given device.
CUDBGResult  ( *getElfImage32 )( uint32_t dev, uint32_t sm, uint32_t wp, bool  relocated, void* *elfImage, uint32_t* size )
Get the relocated or non-relocated ELF image and size for the grid on the given device. Deprecated in 4.0.
CUDBGResult  ( *getGridAttribute )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttribute attr, uint64_t* value )
Get the value of a grid attribute.
CUDBGResult  ( *getGridAttributes )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttributeValuePair* pairs, uint32_t numPairs )
Get several grid attribute values in a single API call.
CUDBGResult  ( *getGridDim )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* gridDim )
Get the number of blocks in the given grid.
CUDBGResult  ( *getGridDim32 )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim2* gridDim )
Get the number of blocks in the given grid. Deprecated in 4.0.
CUDBGResult  ( *getGridStatus )( uint32_t dev, uint32_t gridId, CUDBGGridStatus* status )
Check whether the grid corresponding to the given gridId is still present on the device.
CUDBGResult  ( *getHostAddrFromDeviceAddr )( uint32_t dev, uint64_t device_addr, uint64_t* host_addr )
given a device virtual address, return a corresponding system memory virtual address.
CUDBGResult  ( *getNextAsyncEvent )( CUDBGEvent* event )
Copies the next available event in the asynchronous event queue into 'event' and removes it from the queue. The asynchronous event queue is held separate from the normal event queue, and does not require acknowledgement from the debug client.
CUDBGResult  ( *getNextEvent30 )( CUDBGEvent30* event )
Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 3.1.
CUDBGResult  ( *getNextEvent32 )( CUDBGEvent32* event )
Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 4.0.
CUDBGResult  ( *getNextEvent42 )( CUDBGEvent42* event )
Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 5.0.
CUDBGResult  ( *getNextSyncEvent )( CUDBGEvent* event )
Copies the next available event in the synchronous event queue into 'event' and removes it from the queue.
CUDBGResult  ( *getNumDevices )( uint32_t* numDev )
Get the number of installed CUDA devices.
CUDBGResult  ( *getNumLanes )( uint32_t dev, uint32_t* numLanes )
Get the number of lanes per warp on the device.
CUDBGResult  ( *getNumRegisters )( uint32_t dev, uint32_t* numRegs )
Get the number of registers per lane on the device.
CUDBGResult  ( *getNumSMs )( uint32_t dev, uint32_t* numSMs )
Get the total number of SMs on the device.
CUDBGResult  ( *getNumWarps )( uint32_t dev, uint32_t* numWarps )
Get the number of warps per SM on the device.
CUDBGResult  ( *getPhysicalRegister30 )( uint64_t pc, char* reg, uint32_t* buf, uint32_t sz, uint32_t* numPhysRegs, CUDBGRegClass* regClass )
(DEPRECATED) Get the physical register number(s) assigned to a virtual register name 'reg' at a given PC, if 'reg' is live at that PC. The function has been deprecated. use getWarpPhysicalRegister instead.
CUDBGResult  ( *getPhysicalRegister40 )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t pc, char* reg, uint32_t* buf, uint32_t sz, uint32_t* numPhysRegs, CUDBGRegClass* regClass )
Get the physical register number(s) assigned to a virtual register name 'reg' at a given PC, if 'reg' is live at that PC.
CUDBGResult  ( *getSmType )( uint32_t dev, char* buf, uint32_t sz )
Get the SM type of the device.
CUDBGResult  ( *getTID )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* tid )
Get the ID of the Linux thread hosting the context of the grid.
CUDBGResult  ( *initialize )( )
Initialize the API.
CUDBGResult  ( *isDeviceCodeAddress )( uintptr_t addr, bool* isDeviceAddress )
Determines whether a virtual address resides within device code.
CUDBGResult  ( *lookupDeviceCodeSymbol )( char* symName, bool* symFound, uintptr_t* symAddr )
Determines whether a symbol represents a function in device code and returns its virtual address.
CUDBGResult  ( *memcheckReadErrorAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* address, ptxStorageKind* storage )
Get the address that memcheck detected an error on.
CUDBGResult  ( *readActiveLanes )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* activeLanesMask )
Reads the bitmask of active lanes on a valid warp.
CUDBGResult  ( *readBlockIdx )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* blockIdx )
Reads the CUDA block index running on a valid warp.
CUDBGResult  ( *readBlockIdx32 )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim2* blockIdx )
Reads the two-dimensional CUDA block index running on a valid warp. Deprecated in 4.0.
CUDBGResult  ( *readBrokenWarps )( uint32_t dev, uint32_t sm, uint64_t* brokenWarpsMask )
Reads the bitmask of warps that are at a breakpoint on a given SM.
CUDBGResult  ( *readCallDepth )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* depth )
Reads the call depth (number of calls) for a given lane.
CUDBGResult  ( *readCallDepth32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* depth )
Reads the call depth (number of calls) for a given warp. Deprecated in 4.0.
CUDBGResult  ( *readCodeMemory )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the code memory segment.
CUDBGResult  ( *readConstMemory )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the constant memory segment.
CUDBGResult  ( *readGlobalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the global memory segment (entire 40-bit VA on Fermi+).
CUDBGResult  ( *readGlobalMemory31 )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the global memory segment. Deprecated in 3.2.
CUDBGResult  ( *readGridId )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* gridId )
Reads the CUDA grid index running on a valid warp.
CUDBGResult  ( *readLaneException )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CUDBGException_t* exception )
Reads the exception type for a given lane.
CUDBGResult  ( *readLaneStatus )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, bool* error )
Reads the status of the given lane. For specific error values, use readLaneException.
CUDBGResult  ( *readLocalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the local memory segment.
CUDBGResult  ( *readPC )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* pc )
Reads the PC on the given active lane.
CUDBGResult  ( *readParamMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the param memory segment.
CUDBGResult  ( *readPinnedMemory )( uint64_t addr, void* buf, uint32_t sz )
Reads content at pinned address in system memory.
CUDBGResult  ( *readRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t* val )
Reads content of a hardware register.
CUDBGResult  ( *readReturnAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t* ra )
Reads the physical return address for a call level.
CUDBGResult  ( *readReturnAddress32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t* ra )
Reads the physical return address for a call level. Deprecated in 4.0.
CUDBGResult  ( *readSharedMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void* buf, uint32_t sz )
Reads content at address in the shared memory segment.
CUDBGResult  ( *readSyscallCallDepth )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* depth )
Reads the call depth of syscalls for a given lane.
CUDBGResult  ( *readTextureMemory )( uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t id, uint32_t dim, uint32_t* coords, void* buf, uint32_t sz )
Read the content of texture memory with given id and coords on sm_20 and lower.
CUDBGResult  ( *readTextureMemoryBindless )( uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t texSymtabIndex, uint32_t dim, uint32_t* coords, void* buf, uint32_t sz )
Read the content of texture memory with given symtab index and coords on sm_30 and higher.
CUDBGResult  ( *readThreadIdx )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CuDim3* threadIdx )
Reads the CUDA thread index running on valid lane.
CUDBGResult  ( *readValidLanes )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* validLanesMask )
Reads the bitmask of valid lanes on a given warp.
CUDBGResult  ( *readValidWarps )( uint32_t dev, uint32_t sm, uint64_t* validWarpsMask )
Reads the bitmask of valid warps on a given SM.
CUDBGResult  ( *readVirtualPC )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* pc )
Reads the virtual PC on the given active lane.
CUDBGResult  ( *readVirtualReturnAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t* ra )
Reads the virtual return address for a call level.
CUDBGResult  ( *readVirtualReturnAddress32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t* ra )
Reads the virtual return address for a call level. Deprecated in 4.0.
CUDBGResult  ( *requestCleanupOnDetach )( )
Request for cleanup of driver state when detaching.
CUDBGResult  ( *resumeDevice )( uint32_t dev )
Resume a suspended CUDA device.
CUDBGResult  ( *setBreakpoint )( uint32_t dev, uint64_t addr )
Sets a breakpoint at the given instruction address for the given device.
CUDBGResult  ( *setBreakpoint31 )( uint64_t addr )
Sets a breakpoint at the given instruction address. Deprecated in 3.2.
CUDBGResult  ( *setNotifyNewEventCallback )( CUDBGNotifyNewEventCallback callback )
Provides the API with the function to call to notify the debugger of a new application or device event.
CUDBGResult  ( *setNotifyNewEventCallback31 )( CUDBGNotifyNewEventCallback31 callback, void* data )
Provides the API with the function to call to notify the debugger of a new application or device event. Deprecated in 3.2.
CUDBGResult  ( *setNotifyNewEventCallback40 )( CUDBGNotifyNewEventCallback40 callback )
Provides the API with the function to call to notify the debugger of a new application or device event. Deprecated in 4.1.
CUDBGResult  ( *singleStepWarp )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t* warpMask )
Single step an individual warp on a suspended CUDA device.
CUDBGResult  ( *singleStepWarp40 )( uint32_t dev, uint32_t sm, uint32_t wp )
(DEPRECATED)Single step an individual warp on a suspended CUDA device. This function has been deprecated. Use singleStepWarp() instead.
CUDBGResult  ( *suspendDevice )( uint32_t dev )
Suspends a running CUDA device.
CUDBGResult  ( *unsetBreakpoint )( uint32_t dev, uint64_t addr )
Unsets a breakpoint at the given instruction address for the given device.
CUDBGResult  ( *unsetBreakpoint31 )( uint64_t addr )
Unsets a breakpoint at the given instruction address. Deprecated in 3.2.
CUDBGResult  ( *writeGlobalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )
Writes content to address in the global memory segment (entire 40-bit VA on Fermi+).
CUDBGResult  ( *writeGlobalMemory31 )( uint32_t dev, uint64_t addr, const void* buf, uint32_t sz )
Writes content to address in the global memory segment. Deprecated in 3.2.
CUDBGResult  ( *writeLocalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )
Writes content to address in the local memory segment.
CUDBGResult  ( *writeParamMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void* buf, uint32_t sz )
Writes content to address in the param memory segment.
CUDBGResult  ( *writePinnedMemory )( uint64_t addr, const void* buf, uint32_t sz )
Writes content to pinned address in system memory.
CUDBGResult  ( *writeRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t val )
Writes content to a hardware register.
CUDBGResult  ( *writeSharedMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void* buf, uint32_t sz )
Writes content to address in the shared memory segment.

Variables

CUDBGResult ( *CUDBGAPI_st::acknowledgeEvent30 )( CUDBGEvent30* event )

Inform the debugger API that the event has been processed. Deprecated in 3.1.

Parameters
event
- pointer to the event that has been processed
Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::acknowledgeEvents42 )( )

Inform the debugger API that synchronous events have been processed. Deprecated in 5.0.

Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::acknowledgeSyncEvents )( )

Inform the debugger API that synchronous events have been processed.

Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::clearAttachState )( )

Clear attach-specific state prior to detach.

Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::disassemble )( uint32_t dev, uint64_t addr, uint32_t* instSize, char* buf, uint32_t sz )

Disassemble instruction at instruction address.

Parameters
dev
- device index
addr
- instruction address
instSize
- instruction size (32 or 64 bits)
buf
- disassembled instruction buffer
sz
- disassembled instruction buffer size
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::finalize )( )

Finalize the API and free all memory.

See also:

initialize

Returns

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_COMMUNICATION_FAILURE, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::getBlockDim )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* blockDim )

Get the number of threads in the given block.

See also:

getGridDim

Parameters
dev
- device index
sm
- SM index
wp
- warp index
blockDim
- the returned number of threads in the block
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getDeviceType )( uint32_t dev, char* buf, uint32_t sz )

Get the string description of the device.

See also:

getSMType

Parameters
dev
- device index
buf
- the destination buffer
sz
- the size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_BUFFER_TOO_SMALL, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getElfImage )( uint32_t dev, uint32_t sm, uint32_t wp, bool  relocated, void* *elfImage, uint64_t* size )

Get the relocated or non-relocated ELF image and size for the grid on the given device.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
relocated
- set to true to specify the relocated ELF image, false otherwise
*elfImage
- pointer to the ELF image
size
- size of the ELF image (64 bits)
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getElfImage32 )( uint32_t dev, uint32_t sm, uint32_t wp, bool  relocated, void* *elfImage, uint32_t* size )

Get the relocated or non-relocated ELF image and size for the grid on the given device. Deprecated in 4.0.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
relocated
- set to true to specify the relocated ELF image, false otherwise
*elfImage
- pointer to the ELF image
size
- size of the ELF image (32 bits)
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridAttribute )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttribute attr, uint64_t* value )

Get the value of a grid attribute.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
attr
- the attribute
value
- the returned value of the attribute
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_ATTRIBUTE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridAttributes )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttributeValuePair* pairs, uint32_t numPairs )

Get several grid attribute values in a single API call.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
pairs
- array of attribute/value pairs
numPairs
- the number of attribute/values pairs in the array
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_ATTRIBUTE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridDim )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* gridDim )

Get the number of blocks in the given grid.

See also:

getBlockDim

Parameters
dev
- device index
sm
- SM index
wp
- warp index
gridDim
- the returned number of blocks in the grid
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridDim32 )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim2* gridDim )

Get the number of blocks in the given grid. Deprecated in 4.0.

See also:

getBlockDim

Parameters
dev
- device index
sm
- SM index
wp
- warp index
gridDim
- the returned number of blocks in the grid
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridStatus )( uint32_t dev, uint32_t gridId, CUDBGGridStatus* status )

Check whether the grid corresponding to the given gridId is still present on the device.

Parameters
dev
gridId
- grid ID
status
- enum indicating whether the grid status is INVALID, PENDING, ACTIVE, SLEEPING, TERMINATED or UNDETERMINED
Returns

CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INTERNAL

CUDBGResult ( *CUDBGAPI_st::getHostAddrFromDeviceAddr )( uint32_t dev, uint64_t device_addr, uint64_t* host_addr )

given a device virtual address, return a corresponding system memory virtual address.

See also:

readGlobalMemory

writeGlobalMemory

Parameters
dev
- device index
device_addr
- device memory address
host_addr
- returned system memory address
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_CONTEXT, CUDBG_ERROR_INVALID_MEMORY_SEGMENT

CUDBGResult ( *CUDBGAPI_st::getNextAsyncEvent )( CUDBGEvent* event )

Copies the next available event in the asynchronous event queue into 'event' and removes it from the queue. The asynchronous event queue is held separate from the normal event queue, and does not require acknowledgement from the debug client.

Parameters
event
- pointer to an event container where to copy the event parameters
Returns

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextEvent30 )( CUDBGEvent30* event )

Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 3.1.

Parameters
event
- pointer to an event container where to copy the event parameters
Returns

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextEvent32 )( CUDBGEvent32* event )

Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 4.0.

Parameters
event
- pointer to an event container where to copy the event parameters
Returns

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextEvent42 )( CUDBGEvent42* event )

Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 5.0.

Parameters
event
- pointer to an event container where to copy the event parameters
Returns

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextSyncEvent )( CUDBGEvent* event )

Copies the next available event in the synchronous event queue into 'event' and removes it from the queue.

Parameters
event
- pointer to an event container where to copy the event parameters
Returns

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNumDevices )( uint32_t* numDev )

Get the number of installed CUDA devices.

See also:

getNumSMs

getNumWarps

getNumLanes

getNumRegisters

Parameters
numDev
- the returned number of devices
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumLanes )( uint32_t dev, uint32_t* numLanes )

Get the number of lanes per warp on the device.

See also:

getNumDevices

getNumSMs

getNumWarps

getNumRegisters

Parameters
dev
- device index
numLanes
- the returned number of lanes
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumRegisters )( uint32_t dev, uint32_t* numRegs )

Get the number of registers per lane on the device.

See also:

getNumDevices

getNumSMs

getNumWarps

getNumLanes

Parameters
dev
- device index
numRegs
- the returned number of registers
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumSMs )( uint32_t dev, uint32_t* numSMs )

Get the total number of SMs on the device.

See also:

getNumDevices

getNumWarps

getNumLanes

getNumRegisters

Parameters
dev
- device index
numSMs
- the returned number of SMs
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumWarps )( uint32_t dev, uint32_t* numWarps )

Get the number of warps per SM on the device.

See also:

getNumDevices

getNumSMs

getNumLanes

getNumRegisters

Parameters
dev
- device index
numWarps
- the returned number of warps
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getPhysicalRegister30 )( uint64_t pc, char* reg, uint32_t* buf, uint32_t sz, uint32_t* numPhysRegs, CUDBGRegClass* regClass )

(DEPRECATED) Get the physical register number(s) assigned to a virtual register name 'reg' at a given PC, if 'reg' is live at that PC. The function has been deprecated. use getWarpPhysicalRegister instead.

Parameters
pc
- Program counter
reg
- virtual register index
buf
- physical register name(s)
sz
- the physical register name buffer size
numPhysRegs
- number of physical register names returned
regClass
- the class of the physical registers
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UKNOWN_FUNCTION, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::getPhysicalRegister40 )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t pc, char* reg, uint32_t* buf, uint32_t sz, uint32_t* numPhysRegs, CUDBGRegClass* regClass )

Get the physical register number(s) assigned to a virtual register name 'reg' at a given PC, if 'reg' is live at that PC. Get the physical register number(s) assigned to a virtual register name 'reg' at a given PC, if 'reg' is live at that PC. If a virtual register name is mapped to more than one physical register, the physical register with the lowest physical register index will contain the highest bits of the virtual register, and the the physical register with the highest physical register index will contain the lowest bits.

Parameters
dev
- device index
sm
- SM index
wp
- warp indx
pc
- Program counter
reg
- virtual register index
buf
- physical register name(s)
sz
- the physical register name buffer size
numPhysRegs
- number of physical register names returned
regClass
- the class of the physical registers
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UKNOWN_FUNCTION, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::getSmType )( uint32_t dev, char* buf, uint32_t sz )

Get the SM type of the device.

See also:

getDeviceType

Parameters
dev
- device index
buf
- the destination buffer
sz
- the size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_BUFFER_TOO_SMALL, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getTID )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* tid )

Get the ID of the Linux thread hosting the context of the grid.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
tid
- the returned thread id
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::initialize )( )

Initialize the API.

See also:

finalize

Returns

CUDBG_SUCCESS, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::isDeviceCodeAddress )( uintptr_t addr, bool* isDeviceAddress )

Determines whether a virtual address resides within device code.

Parameters
addr
- virtual address
isDeviceAddress
- true if address resides within device code
Returns

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UNINITIALIZED, CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::lookupDeviceCodeSymbol )( char* symName, bool* symFound, uintptr_t* symAddr )

Determines whether a symbol represents a function in device code and returns its virtual address.

Parameters
symName
- symbol name
symFound
- set to true if the symbol is found
symAddr
- the symbol virtual address if found
Returns

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UNINITIALIZED, CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::memcheckReadErrorAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* address, ptxStorageKind* storage )

Get the address that memcheck detected an error on.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
address
- returned address detected by memcheck
storage
- returned address class of address
Returns

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMCHECK_NOT_ENABLED, CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::readActiveLanes )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* activeLanesMask )

Reads the bitmask of active lanes on a valid warp.

See also:

readGridId

readBlockIdx

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

Parameters
dev
- device index
sm
- SM index
wp
- warp index
activeLanesMask
- the returned bitmask of active lanes
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readBlockIdx )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* blockIdx )

Reads the CUDA block index running on a valid warp.

See also:

readGridId

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

Parameters
dev
- device index
sm
- SM index
wp
- warp index
blockIdx
- the returned CUDA block index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readBlockIdx32 )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim2* blockIdx )

Reads the two-dimensional CUDA block index running on a valid warp. Deprecated in 4.0.

See also:

readGridId

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

Parameters
dev
- device index
sm
- SM index
wp
- warp index
blockIdx
- the returned CUDA block index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readBrokenWarps )( uint32_t dev, uint32_t sm, uint64_t* brokenWarpsMask )

Reads the bitmask of warps that are at a breakpoint on a given SM.

See also:

readGridId

readBlockIdx

readThreadIdx

readValidWarps

readValidLanes

readActiveLanes

Parameters
dev
- device index
sm
- SM index
brokenWarpsMask
- the returned bitmask of broken warps
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readCallDepth )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* depth )

Reads the call depth (number of calls) for a given lane.

See also:

readReturnAddress

readVirtualReturnAddress

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
depth
- the returned call depth
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readCallDepth32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* depth )

Reads the call depth (number of calls) for a given warp. Deprecated in 4.0.

See also:

readReturnAddress32

readVirtualReturnAddress32

Parameters
dev
- device index
sm
- SM index
wp
- warp index
depth
- the returned call depth
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readCodeMemory )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )
Parameters
dev
- device index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readConstMemory )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )

Reads content at address in the constant memory segment.

See also:

readCodeMemory

readGlobalMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

Parameters
dev
- device index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readGlobalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )

Reads content at address in the global memory segment (entire 40-bit VA on Fermi+).

See also:

readCodeMemory

readConstMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM

CUDBGResult ( *CUDBGAPI_st::readGlobalMemory31 )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )

Reads content at address in the global memory segment. Deprecated in 3.2.

See also:

readCodeMemory

readConstMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

Parameters
dev
- device index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readGridId )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* gridId )

Reads the CUDA grid index running on a valid warp.

See also:

readBlockIdx

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

Parameters
dev
- device index
sm
- SM index
wp
- warp index
gridId
- the returned CUDA grid index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readLaneException )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CUDBGException_t* exception )

Reads the exception type for a given lane.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
exception
- the returned exception type
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readLaneStatus )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, bool* error )

Reads the status of the given lane. For specific error values, use readLaneException.

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
error
- true if there is an error
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readLocalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )
Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readPC )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* pc )
Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
pc
- the returned PC
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readParamMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void* buf, uint32_t sz )
Parameters
dev
- device index
sm
- SM index
wp
- warp index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readPinnedMemory )( uint64_t addr, void* buf, uint32_t sz )
Parameters
addr
- system memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t* val )
Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
regno
- register index
val
- buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readReturnAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t* ra )

Reads the physical return address for a call level.

See also:

readCallDepth

readVirtualReturnAddress

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
level
- the specified call level
ra
- the returned return address for level
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_CALL_LEVEL, CUDBG_ERROR_ZERO_CALL_DEPTH, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readReturnAddress32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t* ra )

Reads the physical return address for a call level. Deprecated in 4.0.

See also:

readCallDepth32

readVirtualReturnAddress32

Parameters
dev
- device index
sm
- SM index
wp
- warp index
level
- the specified call level
ra
- the returned return address for level
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_CALL_LEVEL, CUDBG_ERROR_ZERO_CALL_DEPTH, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readSharedMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void* buf, uint32_t sz )

Reads content at address in the shared memory segment.

See also:

readCodeMemory

readConstMemory

readGlobalMemory

readParamMemory

readLocalMemory

readTextureMemory

readRegister

readPC

Parameters
dev
- device index
sm
- SM index
wp
- warp index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readSyscallCallDepth )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* depth )

Reads the call depth of syscalls for a given lane.

See also:

readReturnAddress

readVirtualReturnAddress

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
depth
- the returned call depth
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readTextureMemory )( uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t id, uint32_t dim, uint32_t* coords, void* buf, uint32_t sz )

Read the content of texture memory with given id and coords on sm_20 and lower. Read the content of texture memory with given id and coords on sm_20 and lower.

On sm_30 and higher, use readTextureMemoryBindless instead.

See also:

readCodeMemory

readConstMemory

readGlobalMemory

readParamMemory

readSharedMemory

readLocalMemory

readRegister

readPC

Parameters
devId
- device index
vsm
- SM index
wp
- warp index
id
- texture id (the value of DW_AT_location attribute in the relocated ELF image)
dim
- texture dimension (1 to 4)
coords
- array of coordinates of size dim
buf
- result buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readTextureMemoryBindless )( uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t texSymtabIndex, uint32_t dim, uint32_t* coords, void* buf, uint32_t sz )

Read the content of texture memory with given symtab index and coords on sm_30 and higher. Read the content of texture memory with given symtab index and coords on sm_30 and higher.

For sm_20 and lower, use readTextureMemory instead.

See also:

readCodeMemory

readConstMemory

readGlobalMemory

readParamMemory

readSharedMemory

readLocalMemory

readRegister

readPC

Parameters
devId
- device index
vsm
- SM index
wp
- warp index
texSymtabIndex
- global symbol table index of the texture symbol
dim
- texture dimension (1 to 4)
coords
- array of coordinates of size dim
buf
- result buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readThreadIdx )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CuDim3* threadIdx )

Reads the CUDA thread index running on valid lane.

See also:

readGridId

readBlockIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
threadIdx
- the returned CUDA thread index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readValidLanes )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* validLanesMask )

Reads the bitmask of valid lanes on a given warp.

See also:

readGridId

readBlockIdx

readThreadIdx

readBrokenWarps

readValidWarps

readActiveLanes

Parameters
dev
- device index
sm
- SM index
wp
- warp index
validLanesMask
- the returned bitmask of valid lanes
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readValidWarps )( uint32_t dev, uint32_t sm, uint64_t* validWarpsMask )

Reads the bitmask of valid warps on a given SM.

See also:

readGridId

readBlockIdx

readThreadIdx

readBrokenWarps

readValidLanes

readActiveLanes

Parameters
dev
- device index
sm
- SM index
validWarpsMask
- the returned bitmask of valid warps
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readVirtualPC )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* pc )

Reads the virtual PC on the given active lane.

See also:

readPC

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
pc
- the returned PC
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_UNKNOWN_FUNCTION

CUDBGResult ( *CUDBGAPI_st::readVirtualReturnAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t* ra )

Reads the virtual return address for a call level.

See also:

readCallDepth

readReturnAddress

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
level
- the specified call level
ra
- the returned virtual return address for level
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_CALL_LEVEL, CUDBG_ERROR_ZERO_CALL_DEPTH, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INTERNAL

CUDBGResult ( *CUDBGAPI_st::readVirtualReturnAddress32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t* ra )

Reads the virtual return address for a call level. Deprecated in 4.0.

See also:

readCallDepth32

readReturnAddress32

Parameters
dev
- device index
sm
- SM index
wp
- warp index
level
- the specified call level
ra
- the returned virtual return address for level
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_CALL_LEVEL, CUDBG_ERROR_ZERO_CALL_DEPTH, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INTERNAL

CUDBGResult ( *CUDBGAPI_st::requestCleanupOnDetach )( )

Request for cleanup of driver state when detaching.

Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::resumeDevice )( uint32_t dev )

Resume a suspended CUDA device.

See also:

suspendDevice

singleStepWarp

Parameters
dev
- device index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::setBreakpoint )( uint32_t dev, uint64_t addr )

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

See also:

unsetBreakpoint

Parameters
dev
- the device index
addr
- instruction address
Returns

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INVALID_ADDRESS, CUDBG_ERROR_INVALID_DEVICE

CUDBGResult ( *CUDBGAPI_st::setBreakpoint31 )( uint64_t addr )

Sets a breakpoint at the given instruction address. Deprecated in 3.2.

See also:

unsetBreakpoint31

Parameters
addr
- instruction address
Returns

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INVALID_ADDRESS

CUDBGResult ( *CUDBGAPI_st::setNotifyNewEventCallback )( CUDBGNotifyNewEventCallback callback )

Provides the API with the function to call to notify the debugger of a new application or device event.

Parameters
callback
- the callback function
Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::setNotifyNewEventCallback31 )( CUDBGNotifyNewEventCallback31 callback, void* data )

Provides the API with the function to call to notify the debugger of a new application or device event. Deprecated in 3.2.

Parameters
callback
- the callback function
data
- a pointer to be passed to the callback when called
Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::setNotifyNewEventCallback40 )( CUDBGNotifyNewEventCallback40 callback )

Provides the API with the function to call to notify the debugger of a new application or device event. Deprecated in 4.1.

Parameters
callback
- the callback function
Returns

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::singleStepWarp )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t* warpMask )

Single step an individual warp on a suspended CUDA device.

See also:

resumeDevice

suspendDevice

Parameters
dev
- device index
sm
- SM index
wp
- warp index
warpMask
- the warps that have been single-stepped
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::singleStepWarp40 )( uint32_t dev, uint32_t sm, uint32_t wp )

(DEPRECATED)Single step an individual warp on a suspended CUDA device. This function has been deprecated. Use singleStepWarp() instead.

See also:

resumeDevice

suspendDevice

singleStepWarp

Parameters
dev
- device index
sm
- SM index
wp
- warp index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::suspendDevice )( uint32_t dev )

Suspends a running CUDA device.

See also:

resumeDevice

singleStepWarp

Parameters
dev
- device index
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::unsetBreakpoint )( uint32_t dev, uint64_t addr )

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

See also:

setBreakpoint

Parameters
dev
- the device index
addr
- instruction address
Returns

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INVALID_ADDRESS, CUDBG_ERROR_INVALID_DEVICE

CUDBGResult ( *CUDBGAPI_st::unsetBreakpoint31 )( uint64_t addr )

Unsets a breakpoint at the given instruction address. Deprecated in 3.2.

See also:

setBreakpoint31

Parameters
addr
- instruction address
Returns

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::writeGlobalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )

Writes content to address in the global memory segment (entire 40-bit VA on Fermi+).

See also:

writeParamMemory

writeSharedMemory

writeLocalMemory

writeRegister

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM

CUDBGResult ( *CUDBGAPI_st::writeGlobalMemory31 )( uint32_t dev, uint64_t addr, const void* buf, uint32_t sz )

Writes content to address in the global memory segment. Deprecated in 3.2.

See also:

writeParamMemory

writeSharedMemory

writeLocalMemory

writeRegister

Parameters
dev
- device index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::writeLocalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )

Writes content to address in the local memory segment.

See also:

writeGlobalMemory

writeParamMemory

writeSharedMemory

writeRegister

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::writeParamMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void* buf, uint32_t sz )

Writes content to address in the param memory segment.

See also:

writeGlobalMemory

writeSharedMemory

writeLocalMemory

writeRegister

Parameters
dev
- device index
sm
- SM index
wp
- warp index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::writePinnedMemory )( uint64_t addr, const void* buf, uint32_t sz )
Parameters
addr
- system memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::writeRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t val )

Writes content to a hardware register.

See also:

writeGlobalMemory

writeParamMemory

writeSharedMemory

writeLocalMemory

Parameters
dev
- device index
sm
- SM index
wp
- warp index
ln
- lane index
regno
- register index
val
- buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::writeSharedMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void* buf, uint32_t sz )

Writes content to address in the shared memory segment.

See also:

writeGlobalMemory

writeParamMemory

writeLocalMemory

writeRegister

Parameters
dev
- device index
sm
- SM index
wp
- warp index
addr
- memory address
buf
- buffer
sz
- size of the buffer
Returns

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGEvent Struct Reference

[Events]

Description

Event information container.

Public Variables

union CUDBGEvent::​cases_st cases
Information for each type of event.
CUDBGEventKind kind
Event type.

Variables

union CUDBGEvent::​cases_stCUDBGEvent::cases [inherited]

Information for each type of event.

CUDBGEventKindCUDBGEvent::kind [inherited]

Event type.

CUDBGEvent30 Struct Reference

[Events]

Description

Event information container. Deprecated in 3.1.

Public Variables

union CUDBGEvent30::​cases30_st cases
Information for each type of event.
CUDBGEventKind kind
Event type.

Variables

union CUDBGEvent30::​cases30_stCUDBGEvent30::cases [inherited]

Information for each type of event.

CUDBGEventKindCUDBGEvent30::kind [inherited]

Event type.

CUDBGEvent30::cases30_st Union Reference

Description

Public Variables

struct CUDBGEvent30::​cases30_st::​elfImageLoaded30_st elfImageLoaded
Information about the loaded ELF image.
struct CUDBGEvent30::​cases30_st::​kernelFinished30_st kernelFinished
Information about the kernel that just terminated.
struct CUDBGEvent30::​cases30_st::​kernelReady30_st kernelReady
Information about the kernel ready to be launched.

Variables

struct CUDBGEvent30::​cases30_st::​elfImageLoaded30_stCUDBGEvent30::​cases30_st::elfImageLoaded [inherited]

Information about the loaded ELF image.

struct CUDBGEvent30::​cases30_st::​kernelFinished30_stCUDBGEvent30::​cases30_st::kernelFinished [inherited]

Information about the kernel that just terminated.

struct CUDBGEvent30::​cases30_st::​kernelReady30_stCUDBGEvent30::​cases30_st::kernelReady [inherited]

Information about the kernel ready to be launched.

CUDBGEvent30::cases30_st::elfImageLoaded30_st Struct Reference

Description

Public Variables

char * nonRelocatedElfImage
pointer to the non-relocated ELF image for a CUDA source module.
char * relocatedElfImage
pointer to the relocated ELF image for a CUDA source module.
uint32_t  size
size of the ELF image (32-bit).

Variables

char * CUDBGEvent30::​cases30_st::​elfImageLoaded30_st::nonRelocatedElfImage [inherited]

pointer to the non-relocated ELF image for a CUDA source module.

char * CUDBGEvent30::​cases30_st::​elfImageLoaded30_st::relocatedElfImage [inherited]

pointer to the relocated ELF image for a CUDA source module.

uint32_t CUDBGEvent30::​cases30_st::​elfImageLoaded30_st::size [inherited]

size of the ELF image (32-bit).

CUDBGEvent30::cases30_st::kernelFinished30_st Struct Reference

Description

Public Variables

uint32_t  dev
device index of the kernel.
uint32_t  gridId
grid index of the kernel.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the kernel (Linux only).

Variables

uint32_t CUDBGEvent30::​cases30_st::​kernelFinished30_st::dev [inherited]

device index of the kernel.

uint32_t CUDBGEvent30::​cases30_st::​kernelFinished30_st::gridId [inherited]

grid index of the kernel.

uint32_t CUDBGEvent30::​cases30_st::​kernelFinished30_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the kernel (Linux only).

CUDBGEvent30::cases30_st::kernelReady30_st Struct Reference

Description

Public Variables

uint32_t  dev
device index of the kernel.
uint32_t  gridId
grid index of the kernel.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the kernel (Linux only).

Variables

uint32_t CUDBGEvent30::​cases30_st::​kernelReady30_st::dev [inherited]

device index of the kernel.

uint32_t CUDBGEvent30::​cases30_st::​kernelReady30_st::gridId [inherited]

grid index of the kernel.

uint32_t CUDBGEvent30::​cases30_st::​kernelReady30_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the kernel (Linux only).

CUDBGEvent32 Struct Reference

[Events]

Description

Event information container. Deprecated in 4.0.

Public Variables

union CUDBGEvent32::​cases32_st cases
Information for each type of event.
CUDBGEventKind kind
Event type.

Variables

union CUDBGEvent32::​cases32_stCUDBGEvent32::cases [inherited]

Information for each type of event.

CUDBGEventKindCUDBGEvent32::kind [inherited]

Event type.

CUDBGEvent32::cases32_st Union Reference

Description

Public Variables

struct CUDBGEvent32::​cases32_st::​contextCreate32_st contextCreate
Information about the context being created.
struct CUDBGEvent32::​cases32_st::​contextDestroy32_st contextDestroy
Information about the context being destroyed.
struct CUDBGEvent32::​cases32_st::​contextPop32_st contextPop
Information about the context being popped.
struct CUDBGEvent32::​cases32_st::​contextPush32_st contextPush
Information about the context being pushed.
struct CUDBGEvent32::​cases32_st::​elfImageLoaded32_st elfImageLoaded
Information about the loaded ELF image.
struct CUDBGEvent32::​cases32_st::​kernelFinished32_st kernelFinished
Information about the kernel that just terminated.
struct CUDBGEvent32::​cases32_st::​kernelReady32_st kernelReady
Information about the kernel ready to be launched.

Variables

struct CUDBGEvent32::​cases32_st::​contextCreate32_stCUDBGEvent32::​cases32_st::contextCreate [inherited]

Information about the context being created.

struct CUDBGEvent32::​cases32_st::​contextDestroy32_stCUDBGEvent32::​cases32_st::contextDestroy [inherited]

Information about the context being destroyed.

struct CUDBGEvent32::​cases32_st::​contextPop32_stCUDBGEvent32::​cases32_st::contextPop [inherited]

Information about the context being popped.

struct CUDBGEvent32::​cases32_st::​contextPush32_stCUDBGEvent32::​cases32_st::contextPush [inherited]

Information about the context being pushed.

struct CUDBGEvent32::​cases32_st::​elfImageLoaded32_stCUDBGEvent32::​cases32_st::elfImageLoaded [inherited]

Information about the loaded ELF image.

struct CUDBGEvent32::​cases32_st::​kernelFinished32_stCUDBGEvent32::​cases32_st::kernelFinished [inherited]

Information about the kernel that just terminated.

struct CUDBGEvent32::​cases32_st::​kernelReady32_stCUDBGEvent32::​cases32_st::kernelReady [inherited]

Information about the kernel ready to be launched.

CUDBGEvent32::cases32_st::contextCreate32_st Struct Reference

Description

Public Variables

uint64_t  context
the context being created.
uint32_t  dev
device index of the context.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the context (Linux only).

Variables

uint64_t CUDBGEvent32::​cases32_st::​contextCreate32_st::context [inherited]

the context being created.

uint32_t CUDBGEvent32::​cases32_st::​contextCreate32_st::dev [inherited]

device index of the context.

uint32_t CUDBGEvent32::​cases32_st::​contextCreate32_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the context (Linux only).

CUDBGEvent32::cases32_st::contextDestroy32_st Struct Reference

Description

Public Variables

uint64_t  context
the context being destroyed.
uint32_t  dev
device index of the context.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the context (Linux only).

Variables

uint64_t CUDBGEvent32::​cases32_st::​contextDestroy32_st::context [inherited]

the context being destroyed.

uint32_t CUDBGEvent32::​cases32_st::​contextDestroy32_st::dev [inherited]

device index of the context.

uint32_t CUDBGEvent32::​cases32_st::​contextDestroy32_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the context (Linux only).

CUDBGEvent32::cases32_st::contextPop32_st Struct Reference

Description

Public Variables

uint64_t  context
the context being popped.
uint32_t  dev
device index of the context.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the context (Linux only).

Variables

uint64_t CUDBGEvent32::​cases32_st::​contextPop32_st::context [inherited]

the context being popped.

uint32_t CUDBGEvent32::​cases32_st::​contextPop32_st::dev [inherited]

device index of the context.

uint32_t CUDBGEvent32::​cases32_st::​contextPop32_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the context (Linux only).

CUDBGEvent32::cases32_st::contextPush32_st Struct Reference

Description

Public Variables

uint64_t  context
the context being pushed.
uint32_t  dev
device index of the context.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the context (Linux only).

Variables

uint64_t CUDBGEvent32::​cases32_st::​contextPush32_st::context [inherited]

the context being pushed.

uint32_t CUDBGEvent32::​cases32_st::​contextPush32_st::dev [inherited]

device index of the context.

uint32_t CUDBGEvent32::​cases32_st::​contextPush32_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the context (Linux only).

CUDBGEvent32::cases32_st::elfImageLoaded32_st Struct Reference

Description

Public Variables

uint64_t  context
context of the kernel.
uint32_t  dev
device index of the kernel.
uint64_t  module
module of the kernel.
char * nonRelocatedElfImage
pointer to the non-relocated ELF image for a CUDA source module.
char * relocatedElfImage
pointer to the relocated ELF image for a CUDA source module.
uint32_t  size
size of the ELF image (32-bit).

Variables

uint64_t CUDBGEvent32::​cases32_st::​elfImageLoaded32_st::context [inherited]

context of the kernel.

uint32_t CUDBGEvent32::​cases32_st::​elfImageLoaded32_st::dev [inherited]

device index of the kernel.

uint64_t CUDBGEvent32::​cases32_st::​elfImageLoaded32_st::module [inherited]

module of the kernel.

char * CUDBGEvent32::​cases32_st::​elfImageLoaded32_st::nonRelocatedElfImage [inherited]

pointer to the non-relocated ELF image for a CUDA source module.

char * CUDBGEvent32::​cases32_st::​elfImageLoaded32_st::relocatedElfImage [inherited]

pointer to the relocated ELF image for a CUDA source module.

uint32_t CUDBGEvent32::​cases32_st::​elfImageLoaded32_st::size [inherited]

size of the ELF image (32-bit).

CUDBGEvent32::cases32_st::kernelFinished32_st Struct Reference

Description

Public Variables

uint64_t  context
context of the kernel.
uint32_t  dev
device index of the kernel.
uint64_t  function
function of the kernel.
uint64_t  functionEntry
entry PC of the kernel.
uint32_t  gridId
grid index of the kernel.
uint64_t  module
module of the kernel.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the kernel (Linux only).

Variables

uint64_t CUDBGEvent32::​cases32_st::​kernelFinished32_st::context [inherited]

context of the kernel.

uint32_t CUDBGEvent32::​cases32_st::​kernelFinished32_st::dev [inherited]

device index of the kernel.

uint64_t CUDBGEvent32::​cases32_st::​kernelFinished32_st::function [inherited]

function of the kernel.

uint64_t CUDBGEvent32::​cases32_st::​kernelFinished32_st::functionEntry [inherited]

entry PC of the kernel.

uint32_t CUDBGEvent32::​cases32_st::​kernelFinished32_st::gridId [inherited]

grid index of the kernel.

uint64_t CUDBGEvent32::​cases32_st::​kernelFinished32_st::module [inherited]

module of the kernel.

uint32_t CUDBGEvent32::​cases32_st::​kernelFinished32_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the kernel (Linux only).

CUDBGEvent32::cases32_st::kernelReady32_st Struct Reference

Description

Public Variables

uint64_t  context
context of the kernel.
uint32_t  dev
device index of the kernel.
uint64_t  function
function of the kernel.
uint64_t  functionEntry
entry PC of the kernel.
uint32_t  gridId
grid index of the kernel.
uint64_t  module
module of the kernel.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the kernel (Linux only).

Variables

uint64_t CUDBGEvent32::​cases32_st::​kernelReady32_st::context [inherited]

context of the kernel.

uint32_t CUDBGEvent32::​cases32_st::​kernelReady32_st::dev [inherited]

device index of the kernel.

uint64_t CUDBGEvent32::​cases32_st::​kernelReady32_st::function [inherited]

function of the kernel.

uint64_t CUDBGEvent32::​cases32_st::​kernelReady32_st::functionEntry [inherited]

entry PC of the kernel.

uint32_t CUDBGEvent32::​cases32_st::​kernelReady32_st::gridId [inherited]

grid index of the kernel.

uint64_t CUDBGEvent32::​cases32_st::​kernelReady32_st::module [inherited]

module of the kernel.

uint32_t CUDBGEvent32::​cases32_st::​kernelReady32_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the kernel (Linux only).

CUDBGEvent42 Struct Reference

[Events]

Description

Event information container. Deprecated in 4.2.

Public Variables

union CUDBGEvent42::​cases42_st cases
Information for each type of event.
CUDBGEventKind kind
Event type.

Variables

union CUDBGEvent42::​cases42_stCUDBGEvent42::cases [inherited]

Information for each type of event.

CUDBGEventKindCUDBGEvent42::kind [inherited]

Event type.

CUDBGEvent42::cases42_st Union Reference

Description

Public Variables

struct CUDBGEvent42::​cases42_st::​contextCreate42_st contextCreate
Information about the context being created.
struct CUDBGEvent42::​cases42_st::​contextDestroy42_st contextDestroy
Information about the context being destroyed.
struct CUDBGEvent42::​cases42_st::​contextPop42_st contextPop
Information about the context being popped.
struct CUDBGEvent42::​cases42_st::​contextPush42_st contextPush
Information about the context being pushed.
struct CUDBGEvent42::​cases42_st::​elfImageLoaded42_st elfImageLoaded
Information about the loaded ELF image.
struct CUDBGEvent42::​cases42_st::​kernelFinished42_st kernelFinished
Information about the kernel that just terminated.
struct CUDBGEvent42::​cases42_st::​kernelReady42_st kernelReady
Information about the kernel ready to be launched.

Variables

struct CUDBGEvent42::​cases42_st::​contextCreate42_stCUDBGEvent42::​cases42_st::contextCreate [inherited]

Information about the context being created.

struct CUDBGEvent42::​cases42_st::​contextDestroy42_stCUDBGEvent42::​cases42_st::contextDestroy [inherited]

Information about the context being destroyed.

struct CUDBGEvent42::​cases42_st::​contextPop42_stCUDBGEvent42::​cases42_st::contextPop [inherited]

Information about the context being popped.

struct CUDBGEvent42::​cases42_st::​contextPush42_stCUDBGEvent42::​cases42_st::contextPush [inherited]

Information about the context being pushed.

struct CUDBGEvent42::​cases42_st::​elfImageLoaded42_stCUDBGEvent42::​cases42_st::elfImageLoaded [inherited]

Information about the loaded ELF image.

struct CUDBGEvent42::​cases42_st::​kernelFinished42_stCUDBGEvent42::​cases42_st::kernelFinished [inherited]

Information about the kernel that just terminated.

struct CUDBGEvent42::​cases42_st::​kernelReady42_stCUDBGEvent42::​cases42_st::kernelReady [inherited]

Information about the kernel ready to be launched.

CUDBGEvent42::cases42_st::contextCreate42_st Struct Reference

Description

Public Variables

uint64_t  context
the context being created.
uint32_t  dev
device index of the context.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the context (Linux only).

Variables

uint64_t CUDBGEvent42::​cases42_st::​contextCreate42_st::context [inherited]

the context being created.

uint32_t CUDBGEvent42::​cases42_st::​contextCreate42_st::dev [inherited]

device index of the context.

uint32_t CUDBGEvent42::​cases42_st::​contextCreate42_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the context (Linux only).

CUDBGEvent42::cases42_st::contextDestroy42_st Struct Reference

Description

Public Variables

uint64_t  context
the context being destroyed.
uint32_t  dev
device index of the context.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the context (Linux only).

Variables

uint64_t CUDBGEvent42::​cases42_st::​contextDestroy42_st::context [inherited]

the context being destroyed.

uint32_t CUDBGEvent42::​cases42_st::​contextDestroy42_st::dev [inherited]

device index of the context.

uint32_t CUDBGEvent42::​cases42_st::​contextDestroy42_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the context (Linux only).

CUDBGEvent42::cases42_st::contextPop42_st Struct Reference

Description

Public Variables

uint64_t  context
the context being popped.
uint32_t  dev
device index of the context.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the context (Linux only).

Variables

uint64_t CUDBGEvent42::​cases42_st::​contextPop42_st::context [inherited]

the context being popped.

uint32_t CUDBGEvent42::​cases42_st::​contextPop42_st::dev [inherited]

device index of the context.

uint32_t CUDBGEvent42::​cases42_st::​contextPop42_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the context (Linux only).

CUDBGEvent42::cases42_st::contextPush42_st Struct Reference

Description

Public Variables

uint64_t  context
the context being pushed.
uint32_t  dev
device index of the context.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the context (Linux only).

Variables

uint64_t CUDBGEvent42::​cases42_st::​contextPush42_st::context [inherited]

the context being pushed.

uint32_t CUDBGEvent42::​cases42_st::​contextPush42_st::dev [inherited]

device index of the context.

uint32_t CUDBGEvent42::​cases42_st::​contextPush42_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the context (Linux only).

CUDBGEvent42::cases42_st::elfImageLoaded42_st Struct Reference

Description

Public Variables

uint64_t  context
context of the kernel.
uint32_t  dev
device index of the kernel.
uint64_t  module
module of the kernel.
char * nonRelocatedElfImage
pointer to the non-relocated ELF image for a CUDA source module.
char * relocatedElfImage
pointer to the relocated ELF image for a CUDA source module.
uint64_t  size
size of the ELF image (64-bit).
uint32_t  size32
size of the ELF image (32-bit). Deprecated in 4.0.

Variables

uint64_t CUDBGEvent42::​cases42_st::​elfImageLoaded42_st::context [inherited]

context of the kernel.

uint32_t CUDBGEvent42::​cases42_st::​elfImageLoaded42_st::dev [inherited]

device index of the kernel.

uint64_t CUDBGEvent42::​cases42_st::​elfImageLoaded42_st::module [inherited]

module of the kernel.

char * CUDBGEvent42::​cases42_st::​elfImageLoaded42_st::nonRelocatedElfImage [inherited]

pointer to the non-relocated ELF image for a CUDA source module.

char * CUDBGEvent42::​cases42_st::​elfImageLoaded42_st::relocatedElfImage [inherited]

pointer to the relocated ELF image for a CUDA source module.

uint64_t CUDBGEvent42::​cases42_st::​elfImageLoaded42_st::size [inherited]

size of the ELF image (64-bit).

uint32_t CUDBGEvent42::​cases42_st::​elfImageLoaded42_st::size32 [inherited]

size of the ELF image (32-bit). Deprecated in 4.0.

CUDBGEvent42::cases42_st::kernelFinished42_st Struct Reference

Description

Public Variables

uint64_t  context
context of the kernel.
uint32_t  dev
device index of the kernel.
uint64_t  function
function of the kernel.
uint64_t  functionEntry
entry PC of the kernel.
uint32_t  gridId
grid index of the kernel.
uint64_t  module
module of the kernel.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the kernel (Linux only).

Variables

uint64_t CUDBGEvent42::​cases42_st::​kernelFinished42_st::context [inherited]

context of the kernel.

uint32_t CUDBGEvent42::​cases42_st::​kernelFinished42_st::dev [inherited]

device index of the kernel.

uint64_t CUDBGEvent42::​cases42_st::​kernelFinished42_st::function [inherited]

function of the kernel.

uint64_t CUDBGEvent42::​cases42_st::​kernelFinished42_st::functionEntry [inherited]

entry PC of the kernel.

uint32_t CUDBGEvent42::​cases42_st::​kernelFinished42_st::gridId [inherited]

grid index of the kernel.

uint64_t CUDBGEvent42::​cases42_st::​kernelFinished42_st::module [inherited]

module of the kernel.

uint32_t CUDBGEvent42::​cases42_st::​kernelFinished42_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the kernel (Linux only).

CUDBGEvent42::cases42_st::kernelReady42_st Struct Reference

Description

Public Variables

CuDim3  blockDim
block dimensions of the kernel.
uint64_t  context
context of the kernel.
uint32_t  dev
device index of the kernel.
uint64_t  function
function of the kernel.
uint64_t  functionEntry
entry PC of the kernel.
CuDim3  gridDim
grid dimensions of the kernel.
uint32_t  gridId
grid index of the kernel.
uint64_t  module
module of the kernel.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the kernel (Linux only).
CUDBGKernelType type
the type of the kernel: system or application.

Variables

CuDim3 CUDBGEvent42::​cases42_st::​kernelReady42_st::blockDim [inherited]

block dimensions of the kernel.

uint64_t CUDBGEvent42::​cases42_st::​kernelReady42_st::context [inherited]

context of the kernel.

uint32_t CUDBGEvent42::​cases42_st::​kernelReady42_st::dev [inherited]

device index of the kernel.

uint64_t CUDBGEvent42::​cases42_st::​kernelReady42_st::function [inherited]

function of the kernel.

uint64_t CUDBGEvent42::​cases42_st::​kernelReady42_st::functionEntry [inherited]

entry PC of the kernel.

CuDim3 CUDBGEvent42::​cases42_st::​kernelReady42_st::gridDim [inherited]

grid dimensions of the kernel.

uint32_t CUDBGEvent42::​cases42_st::​kernelReady42_st::gridId [inherited]

grid index of the kernel.

uint64_t CUDBGEvent42::​cases42_st::​kernelReady42_st::module [inherited]

module of the kernel.

uint32_t CUDBGEvent42::​cases42_st::​kernelReady42_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the kernel (Linux only).

CUDBGKernelTypeCUDBGEvent42::​cases42_st::​kernelReady42_st::type [inherited]

the type of the kernel: system or application.

CUDBGEvent::cases_st Union Reference

Description

Public Variables

struct CUDBGEvent::​cases_st::​contextCreate_st contextCreate
Information about the context being created.
struct CUDBGEvent::​cases_st::​contextDestroy_st contextDestroy
Information about the context being destroyed.
struct CUDBGEvent::​cases_st::​contextPop_st contextPop
Information about the context being popped.
struct CUDBGEvent::​cases_st::​contextPush_st contextPush
Information about the context being pushed.
struct CUDBGEvent::​cases_st::​elfImageLoaded_st elfImageLoaded
Information about the loaded ELF image.
struct CUDBGEvent::​cases_st::​internalError_st internalError
Information about internal erros.
struct CUDBGEvent::​cases_st::​kernelFinished_st kernelFinished
Information about the kernel that just terminated.
struct CUDBGEvent::​cases_st::​kernelReady_st kernelReady
Information about the kernel ready to be launched.

Variables

struct CUDBGEvent::​cases_st::​contextCreate_stCUDBGEvent::​cases_st::contextCreate [inherited]

Information about the context being created.

struct CUDBGEvent::​cases_st::​contextDestroy_stCUDBGEvent::​cases_st::contextDestroy [inherited]

Information about the context being destroyed.

struct CUDBGEvent::​cases_st::​contextPop_stCUDBGEvent::​cases_st::contextPop [inherited]

Information about the context being popped.

struct CUDBGEvent::​cases_st::​contextPush_stCUDBGEvent::​cases_st::contextPush [inherited]

Information about the context being pushed.

struct CUDBGEvent::​cases_st::​elfImageLoaded_stCUDBGEvent::​cases_st::elfImageLoaded [inherited]

Information about the loaded ELF image.

struct CUDBGEvent::​cases_st::​internalError_stCUDBGEvent::​cases_st::internalError [inherited]

Information about internal erros.

struct CUDBGEvent::​cases_st::​kernelFinished_stCUDBGEvent::​cases_st::kernelFinished [inherited]

Information about the kernel that just terminated.

struct CUDBGEvent::​cases_st::​kernelReady_stCUDBGEvent::​cases_st::kernelReady [inherited]

Information about the kernel ready to be launched.

CUDBGEvent::cases_st::contextCreate_st Struct Reference

Description

Public Variables

uint64_t  context
the context being created.
uint32_t  dev
device index of the context.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the context (Linux only).

Variables

uint64_t CUDBGEvent::​cases_st::​contextCreate_st::context [inherited]

the context being created.

uint32_t CUDBGEvent::​cases_st::​contextCreate_st::dev [inherited]

device index of the context.

uint32_t CUDBGEvent::​cases_st::​contextCreate_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the context (Linux only).

CUDBGEvent::cases_st::contextDestroy_st Struct Reference

Description

Public Variables

uint64_t  context
the context being destroyed.
uint32_t  dev
device index of the context.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the context (Linux only).

Variables

uint64_t CUDBGEvent::​cases_st::​contextDestroy_st::context [inherited]

the context being destroyed.

uint32_t CUDBGEvent::​cases_st::​contextDestroy_st::dev [inherited]

device index of the context.

uint32_t CUDBGEvent::​cases_st::​contextDestroy_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the context (Linux only).

CUDBGEvent::cases_st::contextPop_st Struct Reference

Description

Public Variables

uint64_t  context
the context being popped.
uint32_t  dev
device index of the context.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the context (Linux only).

Variables

uint64_t CUDBGEvent::​cases_st::​contextPop_st::context [inherited]

the context being popped.

uint32_t CUDBGEvent::​cases_st::​contextPop_st::dev [inherited]

device index of the context.

uint32_t CUDBGEvent::​cases_st::​contextPop_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the context (Linux only).

CUDBGEvent::cases_st::contextPush_st Struct Reference

Description

Public Variables

uint64_t  context
the context being pushed.
uint32_t  dev
device index of the context.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the context (Linux only).

Variables

uint64_t CUDBGEvent::​cases_st::​contextPush_st::context [inherited]

the context being pushed.

uint32_t CUDBGEvent::​cases_st::​contextPush_st::dev [inherited]

device index of the context.

uint32_t CUDBGEvent::​cases_st::​contextPush_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the context (Linux only).

CUDBGEvent::cases_st::elfImageLoaded_st Struct Reference

Description

Public Variables

uint64_t  context
context of the kernel.
uint32_t  dev
device index of the kernel.
uint64_t  module
module of the kernel.
char * nonRelocatedElfImage
pointer to the non-relocated ELF image for a CUDA source module.
char * relocatedElfImage
pointer to the relocated ELF image for a CUDA source module.
uint64_t  size
size of the ELF image (64-bit).
uint32_t  size32
size of the ELF image (32-bit). Deprecated in 4.0.

Variables

uint64_t CUDBGEvent::​cases_st::​elfImageLoaded_st::context [inherited]

context of the kernel.

uint32_t CUDBGEvent::​cases_st::​elfImageLoaded_st::dev [inherited]

device index of the kernel.

uint64_t CUDBGEvent::​cases_st::​elfImageLoaded_st::module [inherited]

module of the kernel.

char * CUDBGEvent::​cases_st::​elfImageLoaded_st::nonRelocatedElfImage [inherited]

pointer to the non-relocated ELF image for a CUDA source module.

char * CUDBGEvent::​cases_st::​elfImageLoaded_st::relocatedElfImage [inherited]

pointer to the relocated ELF image for a CUDA source module.

uint64_t CUDBGEvent::​cases_st::​elfImageLoaded_st::size [inherited]

size of the ELF image (64-bit).

uint32_t CUDBGEvent::​cases_st::​elfImageLoaded_st::size32 [inherited]

size of the ELF image (32-bit). Deprecated in 4.0.

CUDBGEvent::cases_st::internalError_st Struct Reference

Description

Public Variables

CUDBGResult errorType
Type of the internal error.

Variables

CUDBGResultCUDBGEvent::​cases_st::​internalError_st::errorType [inherited]

Type of the internal error.

CUDBGEvent::cases_st::kernelFinished_st Struct Reference

Description

Public Variables

uint64_t  context
context of the kernel.
uint32_t  dev
device index of the kernel.
uint64_t  function
function of the kernel.
uint64_t  functionEntry
entry PC of the kernel.
uint32_t  gridId
grid index of the kernel.
uint64_t  module
module of the kernel.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the kernel (Linux only).

Variables

uint64_t CUDBGEvent::​cases_st::​kernelFinished_st::context [inherited]

context of the kernel.

uint32_t CUDBGEvent::​cases_st::​kernelFinished_st::dev [inherited]

device index of the kernel.

uint64_t CUDBGEvent::​cases_st::​kernelFinished_st::function [inherited]

function of the kernel.

uint64_t CUDBGEvent::​cases_st::​kernelFinished_st::functionEntry [inherited]

entry PC of the kernel.

uint32_t CUDBGEvent::​cases_st::​kernelFinished_st::gridId [inherited]

grid index of the kernel.

uint64_t CUDBGEvent::​cases_st::​kernelFinished_st::module [inherited]

module of the kernel.

uint32_t CUDBGEvent::​cases_st::​kernelFinished_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the kernel (Linux only).

CUDBGEvent::cases_st::kernelReady_st Struct Reference

Description

Public Variables

CuDim3  blockDim
block dimensions of the kernel.
uint64_t  context
context of the kernel.
uint32_t  dev
device index of the kernel.
uint64_t  function
function of the kernel.
uint64_t  functionEntry
entry PC of the kernel.
CuDim3  gridDim
grid dimensions of the kernel.
uint32_t  gridId
grid index of the kernel.
uint64_t  module
module of the kernel.
uint32_t  tid
host thread id (or LWP id) of the thread hosting the kernel (Linux only).
CUDBGKernelType type
the type of the kernel: system or application.

Variables

CuDim3 CUDBGEvent::​cases_st::​kernelReady_st::blockDim [inherited]

block dimensions of the kernel.

uint64_t CUDBGEvent::​cases_st::​kernelReady_st::context [inherited]

context of the kernel.

uint32_t CUDBGEvent::​cases_st::​kernelReady_st::dev [inherited]

device index of the kernel.

uint64_t CUDBGEvent::​cases_st::​kernelReady_st::function [inherited]

function of the kernel.

uint64_t CUDBGEvent::​cases_st::​kernelReady_st::functionEntry [inherited]

entry PC of the kernel.

CuDim3 CUDBGEvent::​cases_st::​kernelReady_st::gridDim [inherited]

grid dimensions of the kernel.

uint32_t CUDBGEvent::​cases_st::​kernelReady_st::gridId [inherited]

grid index of the kernel.

uint64_t CUDBGEvent::​cases_st::​kernelReady_st::module [inherited]

module of the kernel.

uint32_t CUDBGEvent::​cases_st::​kernelReady_st::tid [inherited]

host thread id (or LWP id) of the thread hosting the kernel (Linux only).

CUDBGKernelTypeCUDBGEvent::​cases_st::​kernelReady_st::type [inherited]

the type of the kernel: system or application.

CUDBGEventCallbackData Struct Reference

[Events]

Description

Event information passed to callback set with setNotifyNewEventCallback function.

Public Variables

uint32_t  tid
Host thread id of the context generating the event. Zero if not available.
uint32_t  timeout
A boolean notifying the debugger that the debug API timed while waiting for a reponse from the debugger to a previous event. It is up to the debugger to decide what to do in response to a timeout.

Variables

uint32_t CUDBGEventCallbackData::tid [inherited]

Host thread id of the context generating the event. Zero if not available.

uint32_t CUDBGEventCallbackData::timeout [inherited]

A boolean notifying the debugger that the debug API timed while waiting for a reponse from the debugger to a previous event. It is up to the debugger to decide what to do in response to a timeout.

CUDBGEventCallbackData40 Struct Reference

[Events]

Description

Event information passed to callback set with setNotifyNewEventCallback function. Deprecated in 4.1.

Public Variables

uint32_t  tid
Host thread id of the context generating the event. Zero if not available.

Variables

uint32_t CUDBGEventCallbackData40::tid [inherited]

Host thread id of the context generating the event. Zero if not available.

Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

A

acknowledgeEvent30
cudbgGetAPI
acknowledgeEvents42
cudbgGetAPI
acknowledgeSyncEvents
cudbgGetAPI

C

cases
CUDBGEvent30
CUDBGEvent32
CUDBGEvent
CUDBGEvent42
clearAttachState
cudbgGetAPI
context
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::kernelFinished32_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::contextPush42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::contextPop42_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::contextPush32_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::contextCreate42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::contextDestroy42_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::contextPop32_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::elfImageLoaded_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::contextDestroy_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::contextCreate_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::kernelReady_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::contextCreate32_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::kernelFinished_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::contextPush_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::elfImageLoaded32_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::contextDestroy32_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::contextPop_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::elfImageLoaded42_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::kernelReady32_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::kernelReady42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::kernelFinished42_st
contextCreate
CUDBGEvent42::CUDBGEvent42::cases42_st
CUDBGEvent::CUDBGEvent::cases_st
CUDBGEvent32::CUDBGEvent32::cases32_st
contextDestroy
CUDBGEvent32::CUDBGEvent32::cases32_st
CUDBGEvent::CUDBGEvent::cases_st
CUDBGEvent42::CUDBGEvent42::cases42_st
contextPop
CUDBGEvent42::CUDBGEvent42::cases42_st
CUDBGEvent32::CUDBGEvent32::cases32_st
CUDBGEvent::CUDBGEvent::cases_st
contextPush
CUDBGEvent32::CUDBGEvent32::cases32_st
CUDBGEvent42::CUDBGEvent42::cases42_st
CUDBGEvent::CUDBGEvent::cases_st

D

dev
CUDBGEvent30::CUDBGEvent30::cases30_st::CUDBGEvent30::cases30_st::kernelReady30_st
CUDBGEvent30::CUDBGEvent30::cases30_st::CUDBGEvent30::cases30_st::kernelFinished30_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::contextDestroy_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::contextCreate_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::contextPop_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::contextPush_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::kernelFinished_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::kernelReady_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::elfImageLoaded_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::kernelReady32_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::contextCreate42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::contextPop42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::contextPush42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::kernelFinished42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::kernelReady42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::elfImageLoaded42_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::contextDestroy32_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::contextCreate32_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::contextPop32_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::contextPush32_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::kernelFinished32_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::contextDestroy42_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::elfImageLoaded32_st
disassemble
cudbgGetAPI

I

initialize
cudbgGetAPI
internalError
CUDBGEvent::CUDBGEvent::cases_st
isDeviceCodeAddress
cudbgGetAPI

L

lookupDeviceCodeSymbol
cudbgGetAPI

R

readActiveLanes
cudbgGetAPI
readBlockIdx
cudbgGetAPI
readBlockIdx32
cudbgGetAPI
readBrokenWarps
cudbgGetAPI
readCallDepth
cudbgGetAPI
readCallDepth32
cudbgGetAPI
readCodeMemory
cudbgGetAPI
readConstMemory
cudbgGetAPI
readGlobalMemory
cudbgGetAPI
readGlobalMemory31
cudbgGetAPI
readGridId
cudbgGetAPI
readLaneException
cudbgGetAPI
readLaneStatus
cudbgGetAPI
readLocalMemory
cudbgGetAPI
readParamMemory
cudbgGetAPI
readPC
cudbgGetAPI
readPinnedMemory
cudbgGetAPI
readRegister
cudbgGetAPI
readReturnAddress
cudbgGetAPI
readReturnAddress32
cudbgGetAPI
readSharedMemory
cudbgGetAPI
readSyscallCallDepth
cudbgGetAPI
readTextureMemory
cudbgGetAPI
readTextureMemoryBindless
cudbgGetAPI
readThreadIdx
cudbgGetAPI
readValidLanes
cudbgGetAPI
readValidWarps
cudbgGetAPI
readVirtualPC
cudbgGetAPI
readVirtualReturnAddress
cudbgGetAPI
readVirtualReturnAddress32
cudbgGetAPI
relocatedElfImage
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::elfImageLoaded42_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::elfImageLoaded32_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::elfImageLoaded_st
CUDBGEvent30::CUDBGEvent30::cases30_st::CUDBGEvent30::cases30_st::elfImageLoaded30_st
requestCleanupOnDetach
cudbgGetAPI
resumeDevice
cudbgGetAPI

T

tid
CUDBGEvent30::CUDBGEvent30::cases30_st::CUDBGEvent30::cases30_st::kernelReady30_st
CUDBGEvent30::CUDBGEvent30::cases30_st::CUDBGEvent30::cases30_st::kernelFinished30_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::kernelFinished32_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::contextDestroy32_st
CUDBGEventCallbackData
CUDBGEventCallbackData40
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::contextDestroy_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::contextCreate_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::contextPop_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::kernelFinished_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::contextPush_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::kernelReady_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::contextDestroy42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::contextCreate42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::contextPop42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::contextPush42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::kernelFinished42_st
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::kernelReady42_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::contextPush32_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::contextCreate32_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::contextPop32_st
CUDBGEvent32::CUDBGEvent32::cases32_st::CUDBGEvent32::cases32_st::kernelReady32_st
timeout
CUDBGEventCallbackData
type
CUDBGEvent42::CUDBGEvent42::cases42_st::CUDBGEvent42::cases42_st::kernelReady42_st
CUDBGEvent::CUDBGEvent::cases_st::CUDBGEvent::cases_st::kernelReady_st

U

unsetBreakpoint
cudbgGetAPI
unsetBreakpoint31
cudbgGetAPI

W

writeGlobalMemory
cudbgGetAPI
writeGlobalMemory31
cudbgGetAPI
writeLocalMemory
cudbgGetAPI
writeParamMemory
cudbgGetAPI
writePinnedMemory
cudbgGetAPI
writeRegister
cudbgGetAPI
writeSharedMemory
cudbgGetAPI

File List

Here is a list of all documented files with brief descriptions:

cudadebugger.h
Header file for the CUDA debugger API

cudadebugger.h File Reference

Description

Header file for the CUDA debugger API.

Code Example

cudadebugger.h

‎/*
 * Copyright 2007-2012 NVIDIA Corporation.  All rights reserved.
 *
 * NOTICE TO LICENSEE:
 *
 * This source code and/or documentation ("Licensed Deliverables") are
 * subject to NVIDIA intellectual property rights under U.S. and
 * international Copyright laws.
 *
 * These Licensed Deliverables contained herein is PROPRIETARY and
 * CONFIDENTIAL to NVIDIA and is being provided under the terms and
 * conditions of a form of NVIDIA software license agreement by and
 * between NVIDIA and Licensee ("License Agreement") or electronically
 * accepted by Licensee.  Notwithstanding any terms or conditions to
 * the contrary in the License Agreement, reproduction or disclosure
 * of the Licensed Deliverables to any third party without the express
 * written consent of NVIDIA is prohibited.
 *
 * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
 * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
 * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE.  IT IS
 * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
 * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
 * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
 * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
 * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
 * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
 * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
 * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
 * OF THESE LICENSED DELIVERABLES.
 *
 * U.S. Government End Users.  These Licensed Deliverables are a
 * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
 * 1995), consisting of "commercial computer software" and "commercial
 * computer software documentation" as such terms are used in 48
 * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
 * only as a commercial end item.  Consistent with 48 C.F.R.12.212 and
 * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
 * U.S. Government End Users acquire the Licensed Deliverables with
 * only those rights set forth herein.
 *
 * Any use of the Licensed Deliverables in individual and commercial
 * software must include, in the user documentation and internal
 * comments to the code, the above Disclaimer and U.S. Government End
 * Users Notice.
 */

/*--------------------------------- Includes --------------------------------*/

#ifndef CUDADEBUGGER_H
#define CUDADEBUGGER_H

#include <stdlib.h>
#include "cuda_stdint.h"

#if defined(__STDC__)
#include <inttypes.h>
#include <stdbool.h>
#endif

#ifdef __cplusplus
extern "C" {
#endif

#if defined(_WIN32) && !defined(_WIN64)
/* Windows 32-bit */
#define PRIxPTR "I32x"
#endif

#if defined(_WIN64)
/* Windows 64-bit */
#define PRIxPTR "I64x"
#endif

#if defined(_WIN32)
/* Windows 32- and 64-bit */
#define PRIx64  "I64x"
typedef unsigned char bool;
#undef false
#undef true
#define false 0
#define true  1
#endif

/*--------------------------------- API Version ------------------------------*/

#define CUDBG_API_VERSION_MAJOR      5  /* Major release version number */
#define CUDBG_API_VERSION_MINOR      0  /* Minor release version number */
#define CUDBG_API_VERSION_REVISION  77  /* Revision (build) number */

/*---------------------------------- Constants -------------------------------*/

#define CUDBG_MAX_DEVICES 32  /* Maximum number of supported devices */
#define CUDBG_MAX_SMS     64  /* Maximum number of SMs per device */
#define CUDBG_MAX_WARPS   64  /* Maximum number of warps per SM */
#define CUDBG_MAX_LANES   32  /* Maximum number of lanes per warp */

/*----------------------- Thread/Block Coordinates Types ---------------------*/

typedef struct { uint32_t x, y; }    CuDim2;   /* DEPRECATED */
typedef struct { uint32_t x, y, z; } CuDim3;   /* 3-dimensional coordinates for threads,... */

/*--------------------- Memory Segments (as used in DWARF) -------------------*/

typedef enum {
    ptxUNSPECIFIEDStorage,
    ptxCodeStorage,
    ptxRegStorage,
    ptxSregStorage,
    ptxConstStorage,
    ptxGlobalStorage,
    ptxLocalStorage,
    ptxParamStorage,
    ptxSharedStorage,
    ptxSurfStorage,
    ptxTexStorage,
    ptxTexSamplerStorage,
    ptxGenericStorage,
    ptxIParamStorage,
    ptxOParamStorage,
    ptxFrameStorage,
    ptxMAXStorage
} ptxStorageKind;

/*--------------------------- Debugger System Calls --------------------------*/

#define CUDBG_IPC_FLAG_NAME                 cudbgIpcFlag
#define CUDBG_RPC_ENABLED                   cudbgRpcEnabled
#define CUDBG_APICLIENT_PID                 cudbgApiClientPid
#define CUDBG_DEBUGGER_INITIALIZED          cudbgDebuggerInitialized
#define CUDBG_APICLIENT_REVISION            cudbgApiClientRevision
#define CUDBG_SESSION_ID                    cudbgSessionId
#define CUDBG_ATTACH_HANDLER_AVAILABLE      cudbgAttachHandlerAvailable
#define CUDBG_DETACH_SUSPENDED_DEVICES_MASK cudbgDetachSuspendedDevicesMask

/*---------------- Internal Breakpoint Entries for Error Reporting ------------*/

#define CUDBG_REPORT_DRIVER_API_ERROR                   cudbgReportDriverApiError
#define CUDBG_REPORTED_DRIVER_API_ERROR_CODE            cudbgReportedDriverApiErrorCode
#define CUDBG_REPORTED_DRIVER_API_ERROR_FUNC_NAME_SIZE  cudbgReportedDriverApiErrorFuncNameSize
#define CUDBG_REPORTED_DRIVER_API_ERROR_FUNC_NAME_ADDR  cudbgReportedDriverApiErrorFuncNameAddr
#define CUDBG_REPORT_DRIVER_INTERNAL_ERROR              cudbgReportDriverInternalError
#define CUDBG_REPORTED_DRIVER_INTERNAL_ERROR_CODE       cudbgReportedDriverInternalErrorCode

/*----------------------------- API Return Types -----------------------------*/

typedef enum {
    CUDBG_SUCCESS                           = 0x0000,  /* Succesful execution */
    CUDBG_ERROR_UNKNOWN                     = 0x0001,  /* Error type not listed below */
    CUDBG_ERROR_BUFFER_TOO_SMALL            = 0x0002,  /* Cannot copy all the queried data into the buffer argument */
    CUDBG_ERROR_UNKNOWN_FUNCTION            = 0x0003,  /* Function cannot be found in the CUDA kernel */
    CUDBG_ERROR_INVALID_ARGS                = 0x0004,  /* Wrong use of arguments (NULL pointer, illegal value,...) */
    CUDBG_ERROR_UNINITIALIZED               = 0x0005,  /* Debugger API has not yet been properly initialized */
    CUDBG_ERROR_INVALID_COORDINATES         = 0x0006,  /* Invalid block or thread coordinates were provided */
    CUDBG_ERROR_INVALID_MEMORY_SEGMENT      = 0x0007,  /* Invalid memory segment requested (read/write) */
    CUDBG_ERROR_INVALID_MEMORY_ACCESS       = 0x0008,  /* Requested address (+size) is not within proper segment boundaries */
    CUDBG_ERROR_MEMORY_MAPPING_FAILED       = 0x0009,  /* Memory is not mapped and can't be mapped */
    CUDBG_ERROR_INTERNAL                    = 0x000a,  /* A debugger internal error occurred */
    CUDBG_ERROR_INVALID_DEVICE              = 0x000b,  /* Specified device cannot be found */
    CUDBG_ERROR_INVALID_SM                  = 0x000c,  /* Specified sm cannot be found */
    CUDBG_ERROR_INVALID_WARP                = 0x000d,  /* Specified warp cannot be found */
    CUDBG_ERROR_INVALID_LANE                = 0x000e,  /* Specified lane cannot be found */
    CUDBG_ERROR_SUSPENDED_DEVICE            = 0x000f,  /* device is suspended */
    CUDBG_ERROR_RUNNING_DEVICE              = 0x0010,  /* device is running and not suspended */
    CUDBG_ERROR_INVALID_ADDRESS             = 0x0012,  /* address is out-of-range */
    CUDBG_ERROR_INCOMPATIBLE_API            = 0x0013,  /* API version does not match */
    CUDBG_ERROR_INITIALIZATION_FAILURE      = 0x0014,  /* The CUDA Driver failed to initialize */
    CUDBG_ERROR_INVALID_GRID                = 0x0015,  /* Specified grid cannot be found */
    CUDBG_ERROR_NO_EVENT_AVAILABLE          = 0x0016,  /* No event left to be processed */
    CUDBG_ERROR_SOME_DEVICES_WATCHDOGGED    = 0x0017,  /* One or more devices have an associated watchdog (eg. X) */
    CUDBG_ERROR_ALL_DEVICES_WATCHDOGGED     = 0x0018,  /* All devices have an associated watchdog (eg. X) */
    CUDBG_ERROR_INVALID_ATTRIBUTE           = 0x0019,  /* Specified attribute does not exist or is incorrect */
    CUDBG_ERROR_ZERO_CALL_DEPTH             = 0x001a,  /* No function calls have been made on the device */
    CUDBG_ERROR_INVALID_CALL_LEVEL          = 0x001b,  /* Specified call level is invalid */
    CUDBG_ERROR_COMMUNICATION_FAILURE       = 0x001c,  /* Communication error between the debugger and the application. */
    CUDBG_ERROR_INVALID_CONTEXT             = 0x001d,  /* Specified context cannot be found */
    CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM   = 0x001e,  /* Requested address was not originally allocated from device memory (most likely visible in system memory) */
    CUDBG_ERROR_MEMORY_UNMAPPING_FAILED     = 0x001f,  /* Memory is not unmapped and can't be unmapped */
    CUDBG_ERROR_INCOMPATIBLE_DISPLAY_DRIVER = 0x0020,  /* The display driver is incompatible with the API */
    CUDBG_ERROR_INVALID_MODULE              = 0x0021,  /* The specified module is not valid */
    CUDBG_ERROR_LANE_NOT_IN_SYSCALL         = 0x0022,  /* The specified lane is not inside a device syscall */
    CUDBG_ERROR_MEMCHECK_NOT_ENABLED        = 0x0023,  /* Memcheck has not been enabled */
    CUDBG_ERROR_INVALID_ENVVAR_ARGS         = 0x0024,  /* Some environment variable's value is invalid */
    CUDBG_ERROR_OS_RESOURCES                = 0x0025,  /* Error while allocating resources from the OS */
    CUDBG_ERROR_FORK_FAILED                 = 0x0026,  /* Error while forking the debugger process */
} CUDBGResultResult values of all the API routines. ;

/*------------------------------ Grid Attributes -----------------------------*/

typedef enum {
    CUDBG_ATTR_GRID_LAUNCH_BLOCKING    = 0x000,   /* Whether the grid launch is blocking or not. */
    CUDBG_ATTR_GRID_TID                = 0x001,   /* Id of the host thread that launched the grid. */
} CUDBGAttributeQuery attribute. ;

typedef struct {
    CUDBGAttributeQuery attribute.  attribute;
    uint64_t       value;
} CUDBGAttributeValuePair;

typedef enum {
    CUDBG_GRID_STATUS_INVALID,          /* An invalid grid ID was passed, or an error occurred during status lookup */
    CUDBG_GRID_STATUS_PENDING,          /* The grid was launched but is not running on the HW yet */
    CUDBG_GRID_STATUS_ACTIVE,           /* The grid is currently running on the HW */
    CUDBG_GRID_STATUS_SLEEPING,         /* The grid is on the device, doing a join */
    CUDBG_GRID_STATUS_TERMINATED,       /* The grid has finished executing */
    CUDBG_GRID_STATUS_UNDETERMINED,     /* The grid is either PENDING or TERMINATED */
} CUDBGGridStatusGrid status. ;

/*------------------------------- Kernel Types -------------------------------*/

typedef enum {
    CUDBG_KNL_TYPE_UNKNOWN             = 0x000,   /* Any type not listed below. */
    CUDBG_KNL_TYPE_SYSTEM              = 0x001,   /* System kernel, such as MemCpy. */
    CUDBG_KNL_TYPE_APPLICATION         = 0x002,   /* Application kernel, user-defined or libraries. */
} CUDBGKernelTypeKernel types. ;

/*-------------------------- Physical Register Types -------------------------*/

typedef enum {
    REG_CLASS_INVALID                  = 0x000,   /* invalid register */
    REG_CLASS_REG_CC                   = 0x001,   /* Condition register */
    REG_CLASS_REG_PRED                 = 0x002,   /* Predicate register */
    REG_CLASS_REG_ADDR                 = 0x003,   /* Address register */
    REG_CLASS_REG_HALF                 = 0x004,   /* 16-bit register (Currently unused) */
    REG_CLASS_REG_FULL                 = 0x005,   /* 32-bit register */
    REG_CLASS_MEM_LOCAL                = 0x006,   /* register spilled in memory */
    REG_CLASS_LMEM_REG_OFFSET          = 0x007,   /* register at stack offset (ABI only) */
} CUDBGRegClassPhysical register types. ;

/*---------------------------- Application Events ----------------------------*/

typedef enum {
    CUDBG_EVENT_INVALID                = 0x000,   /* Invalid event */
    CUDBG_EVENT_ELF_IMAGE_LOADED       = 0x001,   /* ELF image for CUDA kernel(s) is ready */
    CUDBG_EVENT_KERNEL_READY           = 0x002,   /* A CUDA kernel is ready to be launched */
    CUDBG_EVENT_KERNEL_FINISHED        = 0x003,   /* A CUDA kernel has terminated */
    CUDBG_EVENT_INTERNAL_ERROR         = 0x004,   /* Unexpected error. The API may be unstable. */
    CUDBG_EVENT_CTX_PUSH               = 0x005,   /* A CUDA context has been pushed. */
    CUDBG_EVENT_CTX_POP                = 0x006,   /* A CUDA context has been popped. */
    CUDBG_EVENT_CTX_CREATE             = 0x007,   /* A CUDA context has been created and pushed. */
    CUDBG_EVENT_CTX_DESTROY            = 0x008,   /* A CUDA context has been, popped if pushed, then destroyed. */
    CUDBG_EVENT_TIMEOUT                = 0x009,   /* Nothing happened for a while. This is heartbeat event. */
    CUDBG_EVENT_ATTACH_COMPLETE        = 0x00a,   /* Attach complete. */
    CUDBG_EVENT_DETACH_COMPLETE        = 0x00b,   /* Detach complete. */
} CUDBGEventKindCUDA Kernel Events. ;

/* Deprecated */
typedef struct {
    CUDBGEventKindCUDA Kernel Events.  kind;
    union cases30_st {
        struct elfImageLoaded30_st {
            char     *relocatedElfImage;
            char     *nonRelocatedElfImage;
            uint32_t  size;
        } elfImageLoaded;
        struct kernelReady30_st {
            uint32_t dev;
            uint32_t gridId;
            uint32_t tid;
        } kernelReady;
        struct kernelFinished30_st {
            uint32_t dev;
            uint32_t gridId;
            uint32_t tid;
        } kernelFinished;
    } cases;
} CUDBGEvent30Event information container. Deprecated in 3.1. ;

/* Deprecated */
typedef struct {
    CUDBGEventKindCUDA Kernel Events.  kind;
    union cases32_st {
        struct elfImageLoaded32_st {
            char     *relocatedElfImage;
            char     *nonRelocatedElfImage;
            uint32_t  size;
            uint32_t  dev;
            uint64_t  context;
            uint64_t  module;
        } elfImageLoaded;
        struct kernelReady32_st {
            uint32_t dev;
            uint32_t gridId;
            uint32_t tid;
            uint64_t context;
            uint64_t module;
            uint64_t function;
            uint64_t functionEntry;
        } kernelReady;
        struct kernelFinished32_st {
            uint32_t dev;
            uint32_t gridId;
            uint32_t tid;
            uint64_t context;
            uint64_t module;
            uint64_t function;
            uint64_t functionEntry;
        } kernelFinished;
        struct contextPush32_st {
            uint32_t dev;
            uint32_t tid;
            uint64_t context;
        } contextPush;
        struct contextPop32_st {
            uint32_t dev;
            uint32_t tid;
            uint64_t context;
        } contextPop;
        struct contextCreate32_st {
            uint32_t dev;
            uint32_t tid;
            uint64_t context;
        } contextCreate;
        struct contextDestroy32_st {
            uint32_t dev;
            uint32_t tid;
            uint64_t context;
        } contextDestroy;
    } cases;
} CUDBGEvent32Event information container. Deprecated in 4.0. ;

/* Deprecated */
typedef struct {
    CUDBGEventKindCUDA Kernel Events.  kind;
    union cases42_st {
        struct elfImageLoaded42_st {
            char     *relocatedElfImage;
            char     *nonRelocatedElfImage;
            uint32_t  size32;
            uint32_t  dev;
            uint64_t  context;
            uint64_t  module;
            uint64_t  size;
        } elfImageLoaded;
        struct kernelReady42_st {
            uint32_t dev;
            uint32_t gridId;
            uint32_t tid;
            uint64_t context;
            uint64_t module;
            uint64_t function;
            uint64_t functionEntry;
            CuDim3   gridDim;
            CuDim3   blockDim;
            CUDBGKernelTypeKernel types.  type;
        } kernelReady;
        struct kernelFinished42_st {
            uint32_t dev;
            uint32_t gridId;
            uint32_t tid;
            uint64_t context;
            uint64_t module;
            uint64_t function;
            uint64_t functionEntry;
        } kernelFinished;
        struct contextPush42_st {
            uint32_t dev;
            uint32_t tid;
            uint64_t context;
        } contextPush;
        struct contextPop42_st {
            uint32_t dev;
            uint32_t tid;
            uint64_t context;
        } contextPop;
        struct contextCreate42_st {
            uint32_t dev;
            uint32_t tid;
            uint64_t context;
        } contextCreate;
        struct contextDestroy42_st {
            uint32_t dev;
            uint32_t tid;
            uint64_t context;
        } contextDestroy;
    } cases;
} CUDBGEvent42Event information container. Deprecated in 4.2. ;

typedef struct {
    CUDBGEventKindCUDA Kernel Events.  kind;
    union cases_st {
        struct elfImageLoaded_st {
            char     *relocatedElfImage;
            char     *nonRelocatedElfImage;
            uint32_t  size32;
            uint32_t  dev;
            uint64_t  context;
            uint64_t  module;
            uint64_t  size;
        } elfImageLoaded;
        struct kernelReady_st{
            uint32_t dev;
            uint32_t gridId;
            uint32_t tid;
            uint64_t context;
            uint64_t module;
            uint64_t function;
            uint64_t functionEntry;
            CuDim3   gridDim;
            CuDim3   blockDim;
            CUDBGKernelTypeKernel types.  type;
        } kernelReady;
        struct kernelFinished_st {
            uint32_t dev;
            uint32_t gridId;
            uint32_t tid;
            uint64_t context;
            uint64_t module;
            uint64_t function;
            uint64_t functionEntry;
        } kernelFinished;
        struct contextPush_st {
            uint32_t dev;
            uint32_t tid;
            uint64_t context;
        } contextPush;
        struct contextPop_st {
            uint32_t dev;
            uint32_t tid;
            uint64_t context;
        } contextPop;
        struct contextCreate_st {
            uint32_t dev;
            uint32_t tid;
            uint64_t context;
        } contextCreate;
        struct contextDestroy_st {
            uint32_t dev;
            uint32_t tid;
            uint64_t context;
        } contextDestroy;
        struct internalError_st {
            CUDBGResultResult values of all the API routines.  errorType;
        } internalError;
    } cases;
} CUDBGEventEvent information container. ;

typedef struct {
    uint32_t tid;
} CUDBGEventCallbackData40Event information passed to callback set with setNotifyNewEventCallback function. Deprecated in 4.1. ;

typedef struct {
    uint32_t tid;
    uint32_t timeout;
} CUDBGEventCallbackDataEvent information passed to callback set with setNotifyNewEventCallback function. ;

typedef void (*CUDBGNotifyNewEventCallback31function type of the function called to nofify debugger of the presence of a new event in the event queue. Deprecated in 3.2. )(void *data);
typedef void (*CUDBGNotifyNewEventCallback40)(CUDBGEventCallbackData40Event information passed to callback set with setNotifyNewEventCallback function. Deprecated in 4.1.  *data);
typedef void (*CUDBGNotifyNewEventCallbackfunction type of the function called to nofify debugger of the presence of a new event in the event queue. )(CUDBGEventCallbackDataEvent information passed to callback set with setNotifyNewEventCallback function.  *data);

/*-------------------------------- Exceptions ------------------------------*/

typedef enum {
    CUDBG_EXCEPTION_UNKNOWN = 0xFFFFFFFFU, // Force sizeof(CUDBGException_t)==4
    CUDBG_EXCEPTION_NONE = 0,
    CUDBG_EXCEPTION_LANE_ILLEGAL_ADDRESS = 1,
    CUDBG_EXCEPTION_LANE_USER_STACK_OVERFLOW = 2,
    CUDBG_EXCEPTION_DEVICE_HARDWARE_STACK_OVERFLOW = 3,
    CUDBG_EXCEPTION_WARP_ILLEGAL_INSTRUCTION = 4,
    CUDBG_EXCEPTION_WARP_OUT_OF_RANGE_ADDRESS = 5,
    CUDBG_EXCEPTION_WARP_MISALIGNED_ADDRESS = 6,
    CUDBG_EXCEPTION_WARP_INVALID_ADDRESS_SPACE = 7,
    CUDBG_EXCEPTION_WARP_INVALID_PC = 8,
    CUDBG_EXCEPTION_WARP_HARDWARE_STACK_OVERFLOW = 9,
    CUDBG_EXCEPTION_DEVICE_ILLEGAL_ADDRESS = 10,
    CUDBG_EXCEPTION_LANE_MISALIGNED_ADDRESS = 11,
    CUDBG_EXCEPTION_WARP_ASSERT = 12,
    CUDBG_EXCEPTION_LANE_SYSCALL_ERROR = 13,
} CUDBGException_tHarwdare Exception Types. ;

/*--------------------------------- Exports --------------------------------*/

typedef const struct CUDBGAPI_stThe CUDA debugger API routines.  *CUDBGAPI;

CUDBGResultResult values of all the API routines.  cudbgGetAPI(uint32_t major, uint32_t minor, uint32_t rev, CUDBGAPI *api);
CUDBGResultResult values of all the API routines.  cudbgGetAPIVersion(uint32_t *major, uint32_t *minor, uint32_t *rev);
CUDBGResultResult values of all the API routines.  cudbgMain(int apiClientPid, uint32_t apiClientRevision, int sessionId, int attachState,
                      int attachEventInitialized, int writeFd, int detachFd, int attachStubInUse);

struct CUDBGAPI_stThe CUDA debugger API routines.  {
    /* Initialization */
    CUDBGResultResult values of all the API routines.  (*initializeInitialize the API. )(void);
    CUDBGResultResult values of all the API routines.  (*finalizeFinalize the API and free all memory. )(void);

    /* Device Execution Control */
    CUDBGResultResult values of all the API routines.  (*suspendDeviceSuspends a running CUDA device. )(uint32_t dev);
    CUDBGResultResult values of all the API routines.  (*resumeDeviceResume a suspended CUDA device. )(uint32_t dev);
    CUDBGResultResult values of all the API routines.  (*singleStepWarp40(DEPRECATED)Single step an individual warp on a suspended CUDA device. This function has been deprecated. Use singleStepWarp() instead. )(uint32_t dev, uint32_t sm, uint32_t wp);

    /* Breakpoints */
    CUDBGResultResult values of all the API routines.  (*setBreakpoint31Sets a breakpoint at the given instruction address. Deprecated in 3.2. )(uint64_t addr);
    CUDBGResultResult values of all the API routines.  (*unsetBreakpoint31Unsets a breakpoint at the given instruction address. Deprecated in 3.2. )(uint64_t addr);

    /* Device State Inspection */
    CUDBGResultResult values of all the API routines.  (*readGridIdReads the CUDA grid index running on a valid warp. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t *gridId);
    CUDBGResultResult values of all the API routines.  (*readBlockIdx32Reads the two-dimensional CUDA block index running on a valid warp. Deprecated in 4.0. )(uint32_t dev, uint32_t sm, uint32_t wp, CuDim2 *blockIdx);
    CUDBGResultResult values of all the API routines.  (*readThreadIdxReads the CUDA thread index running on valid lane. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CuDim3 *threadIdx);
    CUDBGResultResult values of all the API routines.  (*readBrokenWarpsReads the bitmask of warps that are at a breakpoint on a given SM. )(uint32_t dev, uint32_t sm, uint64_t *brokenWarpsMask);
    CUDBGResultResult values of all the API routines.  (*readValidWarpsReads the bitmask of valid warps on a given SM. )(uint32_t dev, uint32_t sm, uint64_t *validWarpsMask);
    CUDBGResultResult values of all the API routines.  (*readValidLanesReads the bitmask of valid lanes on a given warp. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t *validLanesMask);
    CUDBGResultResult values of all the API routines.  (*readActiveLanesReads the bitmask of active lanes on a valid warp. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t *activeLanesMask);
    CUDBGResultResult values of all the API routines.  (*readCodeMemoryReads content at address in the code memory segment. )(uint32_t dev, uint64_t addr, void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*readConstMemoryReads content at address in the constant memory segment. )(uint32_t dev, uint64_t addr, void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*readGlobalMemory31Reads content at address in the global memory segment. Deprecated in 3.2. )(uint32_t dev, uint64_t addr, void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*readParamMemoryReads content at address in the param memory segment. )(uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*readSharedMemoryReads content at address in the shared memory segment. )(uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*readLocalMemoryReads content at address in the local memory segment. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*readRegisterReads content of a hardware register. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t *val);
    CUDBGResultResult values of all the API routines.  (*readPCReads the PC on the given active lane. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t *pc);
    CUDBGResultResult values of all the API routines.  (*readVirtualPCReads the virtual PC on the given active lane. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t *pc);
    CUDBGResultResult values of all the API routines.  (*readLaneStatusReads the status of the given lane. For specific error values, use readLaneException. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, bool *error);

    /* Device State Alteration */
    CUDBGResultResult values of all the API routines.  (*writeGlobalMemory31Writes content to address in the global memory segment. Deprecated in 3.2. )(uint32_t dev, uint64_t addr, const void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*writeParamMemoryWrites content to address in the param memory segment. )(uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*writeSharedMemoryWrites content to address in the shared memory segment. )(uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*writeLocalMemoryWrites content to address in the local memory segment. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*writeRegisterWrites content to a hardware register. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t val);

    /* Grid Properties */
    CUDBGResultResult values of all the API routines.  (*getGridDim32Get the number of blocks in the given grid. Deprecated in 4.0. )(uint32_t dev, uint32_t sm, uint32_t wp, CuDim2 *gridDim);
    CUDBGResultResult values of all the API routines.  (*getBlockDimGet the number of threads in the given block. )(uint32_t dev, uint32_t sm, uint32_t wp, CuDim3 *blockDim);
    CUDBGResultResult values of all the API routines.  (*getTIDGet the ID of the Linux thread hosting the context of the grid. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t *tid);
    CUDBGResultResult values of all the API routines.  (*getElfImage32Get the relocated or non-relocated ELF image and size for the grid on the given device. Deprecated in 4.0. )(uint32_t dev, uint32_t sm, uint32_t wp, bool relocated, void **elfImage, uint32_t *size);

    /* Device Properties */
    CUDBGResultResult values of all the API routines.  (*getDeviceTypeGet the string description of the device. )(uint32_t dev, char *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*getSmTypeGet the SM type of the device. )(uint32_t dev, char *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*getNumDevicesGet the number of installed CUDA devices. )(uint32_t *numDev);
    CUDBGResultResult values of all the API routines.  (*getNumSMsGet the total number of SMs on the device. )(uint32_t dev, uint32_t *numSMs);
    CUDBGResultResult values of all the API routines.  (*getNumWarpsGet the number of warps per SM on the device. )(uint32_t dev, uint32_t *numWarps);
    CUDBGResultResult values of all the API routines.  (*getNumLanesGet the number of lanes per warp on the device. )(uint32_t dev, uint32_t *numLanes);
    CUDBGResultResult values of all the API routines.  (*getNumRegistersGet the number of registers per lane on the device. )(uint32_t dev, uint32_t *numRegs);

    /* DWARF-related routines */
    CUDBGResultResult values of all the API routines.  (*getPhysicalRegister30(DEPRECATED) Get the physical register number(s) assigned to a virtual register name 'reg' at a given PC, if 'reg' is live at that PC. The function has been deprecated. use getWarpPhysicalRegister instead. )(uint64_t pc, char *reg, uint32_t *buf, uint32_t sz, uint32_t *numPhysRegs, CUDBGRegClassPhysical register types.  *regClass);
    CUDBGResultResult values of all the API routines.  (*disassembleDisassemble instruction at instruction address. )(uint32_t dev, uint64_t addr, uint32_t *instSize, char *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*isDeviceCodeAddressDetermines whether a virtual address resides within device code. )(uintptr_t addr, bool *isDeviceAddress);
    CUDBGResultResult values of all the API routines.  (*lookupDeviceCodeSymbolDetermines whether a symbol represents a function in device code and returns its virtual address. )(char *symName, bool *symFound, uintptr_t *symAddr);

    /* Events */
    CUDBGResultResult values of all the API routines.  (*setNotifyNewEventCallback31Provides the API with the function to call to notify the debugger of a new application or device event. Deprecated in 3.2. )(CUDBGNotifyNewEventCallback31function type of the function called to nofify debugger of the presence of a new event in the event queue. Deprecated in 3.2.  callback, void *data);
    CUDBGResultResult values of all the API routines.  (*getNextEvent30Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 3.1. )(CUDBGEvent30Event information container. Deprecated in 3.1.  *event);
    CUDBGResultResult values of all the API routines.  (*acknowledgeEvent30Inform the debugger API that the event has been processed. Deprecated in 3.1. )(CUDBGEvent30Event information container. Deprecated in 3.1.  *event);

    /* 3.1 Extensions */
    CUDBGResultResult values of all the API routines.  (*getGridAttributeGet the value of a grid attribute. )(uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttributeQuery attribute.  attr, uint64_t *value);
    CUDBGResultResult values of all the API routines.  (*getGridAttributesGet several grid attribute values in a single API call. )(uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttributeValuePair *pairs, uint32_t numPairs);
    CUDBGResultResult values of all the API routines.  (*getPhysicalRegister40Get the physical register number(s) assigned to a virtual register name 'reg' at a given PC, if 'reg' is live at that PC. )(uint32_t dev, uint32_t sm, uint32_t wp, uint64_t pc, char *reg, uint32_t *buf, uint32_t sz, uint32_t *numPhysRegs, CUDBGRegClassPhysical register types.  *regClass);
    CUDBGResultResult values of all the API routines.  (*readLaneExceptionReads the exception type for a given lane. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CUDBGException_tHarwdare Exception Types.  *exception);
    CUDBGResultResult values of all the API routines.  (*getNextEvent32Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 4.0. )(CUDBGEvent32Event information container. Deprecated in 4.0.  *event);
    CUDBGResultResult values of all the API routines.  (*acknowledgeEvents42Inform the debugger API that synchronous events have been processed. Deprecated in 5.0. )(void);

    /* 3.1 - ABI */
    CUDBGResultResult values of all the API routines.  (*readCallDepth32Reads the call depth (number of calls) for a given warp. Deprecated in 4.0. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t *depth);
    CUDBGResultResult values of all the API routines.  (*readReturnAddress32Reads the physical return address for a call level. Deprecated in 4.0. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t *ra);
    CUDBGResultResult values of all the API routines.  (*readVirtualReturnAddress32Reads the virtual return address for a call level. Deprecated in 4.0. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t *ra);

    /* 3.2 Extensions */
    CUDBGResultResult values of all the API routines.  (*readGlobalMemoryReads content at address in the global memory segment (entire 40-bit VA on Fermi+). )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*writeGlobalMemoryWrites content to address in the global memory segment (entire 40-bit VA on Fermi+). )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*readPinnedMemoryReads content at pinned address in system memory. )(uint64_t addr, void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*writePinnedMemoryWrites content to pinned address in system memory. )(uint64_t addr, const void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*setBreakpointSets a breakpoint at the given instruction address for the given device. )(uint32_t dev, uint64_t addr);
    CUDBGResultResult values of all the API routines.  (*unsetBreakpointUnsets a breakpoint at the given instruction address for the given device. )(uint32_t dev, uint64_t addr);
    CUDBGResultResult values of all the API routines.  (*setNotifyNewEventCallback40Provides the API with the function to call to notify the debugger of a new application or device event. Deprecated in 4.1. )(CUDBGNotifyNewEventCallback40 callback);

    /* 4.0 Extensions */
    CUDBGResultResult values of all the API routines.  (*getNextEvent42Copies the next available event in the event queue into 'event' and removes it from the queue. Deprecated in 5.0. )(CUDBGEvent42Event information container. Deprecated in 4.2.  *event);
    CUDBGResultResult values of all the API routines.  (*readTextureMemoryRead the content of texture memory with given id and coords on sm_20 and lower. )(uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t id, uint32_t dim, uint32_t *coords, void *buf, uint32_t sz);
    CUDBGResultResult values of all the API routines.  (*readBlockIdxReads the CUDA block index running on a valid warp. )(uint32_t dev, uint32_t sm, uint32_t wp, CuDim3 *blockIdx);
    CUDBGResultResult values of all the API routines.  (*getGridDimGet the number of blocks in the given grid. )(uint32_t dev, uint32_t sm, uint32_t wp, CuDim3 *gridDim);
    CUDBGResultResult values of all the API routines.  (*readCallDepthReads the call depth (number of calls) for a given lane. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t *depth);
    CUDBGResultResult values of all the API routines.  (*readReturnAddressReads the physical return address for a call level. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t *ra);
    CUDBGResultResult values of all the API routines.  (*readVirtualReturnAddressReads the virtual return address for a call level. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t *ra);
    CUDBGResultResult values of all the API routines.  (*getElfImageGet the relocated or non-relocated ELF image and size for the grid on the given device. )(uint32_t dev, uint32_t sm, uint32_t wp, bool relocated, void **elfImage, uint64_t *size);

    /* 4.1 Extensions */
    CUDBGResultResult values of all the API routines.  (*getHostAddrFromDeviceAddrgiven a device virtual address, return a corresponding system memory virtual address. )(uint32_t dev, uint64_t device_addr, uint64_t *host_addr);
    CUDBGResultResult values of all the API routines.  (*singleStepWarpSingle step an individual warp on a suspended CUDA device. )(uint32_t dev, uint32_t sm, uint32_t wp, uint64_t *warpMask);
    CUDBGResultResult values of all the API routines.  (*setNotifyNewEventCallbackProvides the API with the function to call to notify the debugger of a new application or device event. )(CUDBGNotifyNewEventCallbackfunction type of the function called to nofify debugger of the presence of a new event in the event queue.  callback);
    CUDBGResultResult values of all the API routines.  (*readSyscallCallDepthReads the call depth of syscalls for a given lane. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t *depth);

    /* 4.2 Extensions */
    CUDBGResultResult values of all the API routines.  (*readTextureMemoryBindlessRead the content of texture memory with given symtab index and coords on sm_30 and higher. )(uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t texSymtabIndex, uint32_t dim, uint32_t *coords, void *buf, uint32_t sz);

    /* 5.0 Extensions */
    CUDBGResultResult values of all the API routines.  (*clearAttachStateClear attach-specific state prior to detach. )(void);
    CUDBGResultResult values of all the API routines.  (*getNextSyncEventCopies the next available event in the synchronous event queue into 'event' and removes it from the queue. )(CUDBGEventEvent information container.  *event);
    CUDBGResultResult values of all the API routines.  (*memcheckReadErrorAddressGet the address that memcheck detected an error on. )(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t *address, ptxStorageKind *storage);
    CUDBGResultResult values of all the API routines.  (*acknowledgeSyncEventsInform the debugger API that synchronous events have been processed. )(void);
    CUDBGResultResult values of all the API routines.  (*getNextAsyncEventCopies the next available event in the asynchronous event queue into 'event' and removes it from the queue. The asynchronous event queue is held separate from the normal event queue, and does not require acknowledgement from the debug client. )(CUDBGEventEvent information container.  *event);
    CUDBGResultResult values of all the API routines.  (*requestCleanupOnDetachRequest for cleanup of driver state when detaching. )(void);
    CUDBGResultResult values of all the API routines.  (*initializeAttachStub)(void);
    CUDBGResultResult values of all the API routines.  (*getGridStatusCheck whether the grid corresponding to the given gridId is still present on the device. )(uint32_t dev, uint32_t gridId, CUDBGGridStatusGrid status.  *status);
};

#ifdef __cplusplus
}
#endif

#endif

Classes

struct 
The CUDA debugger API routines.
struct 
Event information container.
struct 
Event information container. Deprecated in 3.1.
struct 
Event information container. Deprecated in 4.0.
struct 
Event information container. Deprecated in 4.2.
struct 
Event information passed to callback set with setNotifyNewEventCallback function.
struct 
Event information passed to callback set with setNotifyNewEventCallback function. Deprecated in 4.1.

Typedefs

typedef void  
function type of the function called to nofify debugger of the presence of a new event in the event queue.
typedef void  
function type of the function called to nofify debugger of the presence of a new event in the event queue. Deprecated in 3.2.

Enumerations

enum  {CUDBG_ATTR_GRID_LAUNCH_BLOCKING = 0x000, CUDBG_ATTR_GRID_TID = 0x001 }
Query attribute.
enum  {CUDBG_EVENT_INVALID = 0x000, CUDBG_EVENT_ELF_IMAGE_LOADED = 0x001, CUDBG_EVENT_KERNEL_READY = 0x002, CUDBG_EVENT_KERNEL_FINISHED = 0x003, CUDBG_EVENT_INTERNAL_ERROR = 0x004, CUDBG_EVENT_CTX_PUSH = 0x005, CUDBG_EVENT_CTX_POP = 0x006, CUDBG_EVENT_CTX_CREATE = 0x007, CUDBG_EVENT_CTX_DESTROY = 0x008, CUDBG_EVENT_TIMEOUT = 0x009, CUDBG_EVENT_ATTACH_COMPLETE = 0x00a, CUDBG_EVENT_DETACH_COMPLETE = 0x00b }
CUDA Kernel Events.
enum  {CUDBG_EXCEPTION_UNKNOWN = 0xFFFFFFFFU, CUDBG_EXCEPTION_NONE = 0, CUDBG_EXCEPTION_LANE_ILLEGAL_ADDRESS = 1, CUDBG_EXCEPTION_LANE_USER_STACK_OVERFLOW = 2, CUDBG_EXCEPTION_DEVICE_HARDWARE_STACK_OVERFLOW = 3, CUDBG_EXCEPTION_WARP_ILLEGAL_INSTRUCTION = 4, CUDBG_EXCEPTION_WARP_OUT_OF_RANGE_ADDRESS = 5, CUDBG_EXCEPTION_WARP_MISALIGNED_ADDRESS = 6, CUDBG_EXCEPTION_WARP_INVALID_ADDRESS_SPACE = 7, CUDBG_EXCEPTION_WARP_INVALID_PC = 8, CUDBG_EXCEPTION_WARP_HARDWARE_STACK_OVERFLOW = 9, CUDBG_EXCEPTION_DEVICE_ILLEGAL_ADDRESS = 10, CUDBG_EXCEPTION_LANE_MISALIGNED_ADDRESS = 11, CUDBG_EXCEPTION_WARP_ASSERT = 12, CUDBG_EXCEPTION_LANE_SYSCALL_ERROR = 13 }
Harwdare Exception Types.
enum  {CUDBG_GRID_STATUS_INVALID, CUDBG_GRID_STATUS_PENDING, CUDBG_GRID_STATUS_ACTIVE, CUDBG_GRID_STATUS_SLEEPING, CUDBG_GRID_STATUS_TERMINATED, CUDBG_GRID_STATUS_UNDETERMINED }
Grid status.
enum  {CUDBG_KNL_TYPE_UNKNOWN = 0x000, CUDBG_KNL_TYPE_SYSTEM = 0x001, CUDBG_KNL_TYPE_APPLICATION = 0x002 }
Kernel types.
enum  {REG_CLASS_INVALID = 0x000, REG_CLASS_REG_CC = 0x001, REG_CLASS_REG_PRED = 0x002, REG_CLASS_REG_ADDR = 0x003, REG_CLASS_REG_HALF = 0x004, REG_CLASS_REG_FULL = 0x005, REG_CLASS_MEM_LOCAL = 0x006, REG_CLASS_LMEM_REG_OFFSET = 0x007 }
Physical register types.
enum  {CUDBG_SUCCESS = 0x0000, CUDBG_ERROR_UNKNOWN = 0x0001, CUDBG_ERROR_BUFFER_TOO_SMALL = 0x0002, CUDBG_ERROR_UNKNOWN_FUNCTION = 0x0003, CUDBG_ERROR_INVALID_ARGS = 0x0004, CUDBG_ERROR_UNINITIALIZED = 0x0005, CUDBG_ERROR_INVALID_COORDINATES = 0x0006, CUDBG_ERROR_INVALID_MEMORY_SEGMENT = 0x0007, CUDBG_ERROR_INVALID_MEMORY_ACCESS = 0x0008, CUDBG_ERROR_MEMORY_MAPPING_FAILED = 0x0009, CUDBG_ERROR_INTERNAL = 0x000a, CUDBG_ERROR_INVALID_DEVICE = 0x000b, CUDBG_ERROR_INVALID_SM = 0x000c, CUDBG_ERROR_INVALID_WARP = 0x000d, CUDBG_ERROR_INVALID_LANE = 0x000e, CUDBG_ERROR_SUSPENDED_DEVICE = 0x000f, CUDBG_ERROR_RUNNING_DEVICE = 0x0010, CUDBG_ERROR_INVALID_ADDRESS = 0x0012, CUDBG_ERROR_INCOMPATIBLE_API = 0x0013, CUDBG_ERROR_INITIALIZATION_FAILURE = 0x0014, CUDBG_ERROR_INVALID_GRID = 0x0015, CUDBG_ERROR_NO_EVENT_AVAILABLE = 0x0016, CUDBG_ERROR_SOME_DEVICES_WATCHDOGGED = 0x0017, CUDBG_ERROR_ALL_DEVICES_WATCHDOGGED = 0x0018, CUDBG_ERROR_INVALID_ATTRIBUTE = 0x0019, CUDBG_ERROR_ZERO_CALL_DEPTH = 0x001a, CUDBG_ERROR_INVALID_CALL_LEVEL = 0x001b, CUDBG_ERROR_COMMUNICATION_FAILURE = 0x001c, CUDBG_ERROR_INVALID_CONTEXT = 0x001d, CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM = 0x001e, CUDBG_ERROR_MEMORY_UNMAPPING_FAILED = 0x001f, CUDBG_ERROR_INCOMPATIBLE_DISPLAY_DRIVER = 0x0020, CUDBG_ERROR_INVALID_MODULE = 0x0021, CUDBG_ERROR_LANE_NOT_IN_SYSCALL = 0x0022, CUDBG_ERROR_MEMCHECK_NOT_ENABLED = 0x0023, CUDBG_ERROR_INVALID_ENVVAR_ARGS = 0x0024, CUDBG_ERROR_OS_RESOURCES = 0x0025, CUDBG_ERROR_FORK_FAILED = 0x0026 }
Result values of all the API routines.

Functions

CUDBGResult  ( uint32_t* major, uint32_t* minor, uint32_t* rev )
Get the API version supported by the CUDA driver.

Globals

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

CUDBG_ATTR_GRID_LAUNCH_BLOCKING
cudadebugger.h
CUDBG_ATTR_GRID_TID
cudadebugger.h
CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM
cudadebugger.h
CUDBG_ERROR_ALL_DEVICES_WATCHDOGGED
cudadebugger.h
CUDBG_ERROR_BUFFER_TOO_SMALL
cudadebugger.h
CUDBG_ERROR_COMMUNICATION_FAILURE
cudadebugger.h
CUDBG_ERROR_FORK_FAILED
cudadebugger.h
CUDBG_ERROR_INCOMPATIBLE_API
cudadebugger.h
CUDBG_ERROR_INITIALIZATION_FAILURE
cudadebugger.h
CUDBG_ERROR_INTERNAL
cudadebugger.h
CUDBG_ERROR_INVALID_ADDRESS
cudadebugger.h
CUDBG_ERROR_INVALID_ARGS
cudadebugger.h
CUDBG_ERROR_INVALID_ATTRIBUTE
cudadebugger.h
CUDBG_ERROR_INVALID_CALL_LEVEL
cudadebugger.h
CUDBG_ERROR_INVALID_CONTEXT
cudadebugger.h
CUDBG_ERROR_INVALID_COORDINATES
cudadebugger.h
CUDBG_ERROR_INVALID_DEVICE
cudadebugger.h
CUDBG_ERROR_INVALID_GRID
cudadebugger.h
CUDBG_ERROR_INVALID_LANE
cudadebugger.h
CUDBG_ERROR_INVALID_MEMORY_ACCESS
cudadebugger.h
CUDBG_ERROR_INVALID_MEMORY_SEGMENT
cudadebugger.h
CUDBG_ERROR_INVALID_SM
cudadebugger.h
CUDBG_ERROR_INVALID_WARP
cudadebugger.h
CUDBG_ERROR_MEMORY_MAPPING_FAILED
cudadebugger.h
CUDBG_ERROR_NO_EVENT_AVAILABLE
cudadebugger.h
CUDBG_ERROR_OS_RESOURCES
cudadebugger.h
CUDBG_ERROR_RUNNING_DEVICE
cudadebugger.h
CUDBG_ERROR_SOME_DEVICES_WATCHDOGGED
cudadebugger.h
CUDBG_ERROR_SUSPENDED_DEVICE
cudadebugger.h
CUDBG_ERROR_UNINITIALIZED
cudadebugger.h
CUDBG_ERROR_UNKNOWN
cudadebugger.h
CUDBG_ERROR_UNKNOWN_FUNCTION
cudadebugger.h
CUDBG_ERROR_ZERO_CALL_DEPTH
cudadebugger.h
CUDBG_EVENT_ATTACH_COMPLETE
cudadebugger.h
CUDBG_EVENT_CTX_CREATE
cudadebugger.h
CUDBG_EVENT_CTX_DESTROY
cudadebugger.h
CUDBG_EVENT_CTX_POP
cudadebugger.h
CUDBG_EVENT_CTX_PUSH
cudadebugger.h
CUDBG_EVENT_ELF_IMAGE_LOADED
cudadebugger.h
CUDBG_EVENT_INTERNAL_ERROR
cudadebugger.h
CUDBG_EVENT_INVALID
cudadebugger.h
CUDBG_EVENT_KERNEL_FINISHED
cudadebugger.h
CUDBG_EVENT_KERNEL_READY
cudadebugger.h
CUDBG_EVENT_TIMEOUT
cudadebugger.h
CUDBG_EXCEPTION_DEVICE_HARDWARE_STACK_OVERFLOW
cudadebugger.h
CUDBG_EXCEPTION_DEVICE_ILLEGAL_ADDRESS
cudadebugger.h
CUDBG_EXCEPTION_LANE_ILLEGAL_ADDRESS
cudadebugger.h
CUDBG_EXCEPTION_LANE_MISALIGNED_ADDRESS
cudadebugger.h
CUDBG_EXCEPTION_LANE_USER_STACK_OVERFLOW
cudadebugger.h
CUDBG_EXCEPTION_NONE
cudadebugger.h
CUDBG_EXCEPTION_UNKNOWN
cudadebugger.h
CUDBG_EXCEPTION_WARP_HARDWARE_STACK_OVERFLOW
cudadebugger.h
CUDBG_EXCEPTION_WARP_ILLEGAL_INSTRUCTION
cudadebugger.h
CUDBG_EXCEPTION_WARP_INVALID_ADDRESS_SPACE
cudadebugger.h
CUDBG_EXCEPTION_WARP_INVALID_PC
cudadebugger.h
CUDBG_EXCEPTION_WARP_MISALIGNED_ADDRESS
cudadebugger.h
CUDBG_EXCEPTION_WARP_OUT_OF_RANGE_ADDRESS
cudadebugger.h
CUDBG_GRID_STATUS_ACTIVE
cudadebugger.h
CUDBG_GRID_STATUS_INVALID
cudadebugger.h
CUDBG_GRID_STATUS_PENDING
cudadebugger.h
CUDBG_GRID_STATUS_SLEEPING
cudadebugger.h
CUDBG_GRID_STATUS_TERMINATED
cudadebugger.h
CUDBG_GRID_STATUS_UNDETERMINED
cudadebugger.h
CUDBG_KNL_TYPE_APPLICATION
cudadebugger.h
CUDBG_KNL_TYPE_SYSTEM
cudadebugger.h
CUDBG_KNL_TYPE_UNKNOWN
cudadebugger.h
CUDBG_SUCCESS
cudadebugger.h
CUDBGAttribute
cudadebugger.h
CUDBGEventKind
cudadebugger.h
CUDBGException_t
cudadebugger.h
cudbgGetAPIVersion()
cudadebugger.h
CUDBGGridStatus
cudadebugger.h
CUDBGKernelType
cudadebugger.h
CUDBGNotifyNewEventCallback
cudadebugger.h
CUDBGNotifyNewEventCallback31
cudadebugger.h
CUDBGRegClass
cudadebugger.h
CUDBGResult
cudadebugger.h
REG_CLASS_INVALID
cudadebugger.h
REG_CLASS_LMEM_REG_OFFSET
cudadebugger.h
REG_CLASS_MEM_LOCAL
cudadebugger.h
REG_CLASS_REG_ADDR
cudadebugger.h
REG_CLASS_REG_CC
cudadebugger.h
REG_CLASS_REG_FULL
cudadebugger.h
REG_CLASS_REG_HALF
cudadebugger.h
REG_CLASS_REG_PRED
cudadebugger.h

Globals - Functions

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

cudbgGetAPIVersion()
cudadebugger.h

Globals - Typedefs

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

CUDBGNotifyNewEventCallback
cudadebugger.h
CUDBGNotifyNewEventCallback31
cudadebugger.h

Globals - Enumerations

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

CUDBGAttribute
cudadebugger.h
CUDBGEventKind
cudadebugger.h
CUDBGException_t
cudadebugger.h
CUDBGGridStatus
cudadebugger.h
CUDBGKernelType
cudadebugger.h
CUDBGRegClass
cudadebugger.h
CUDBGResult
cudadebugger.h

Globals - Enumerator

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

CUDBG_ATTR_GRID_LAUNCH_BLOCKING
cudadebugger.h
CUDBG_ATTR_GRID_TID
cudadebugger.h
CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM
cudadebugger.h
CUDBG_ERROR_ALL_DEVICES_WATCHDOGGED
cudadebugger.h
CUDBG_ERROR_BUFFER_TOO_SMALL
cudadebugger.h
CUDBG_ERROR_COMMUNICATION_FAILURE
cudadebugger.h
CUDBG_ERROR_FORK_FAILED
cudadebugger.h
CUDBG_ERROR_INCOMPATIBLE_API
cudadebugger.h
CUDBG_ERROR_INITIALIZATION_FAILURE
cudadebugger.h
CUDBG_ERROR_INTERNAL
cudadebugger.h
CUDBG_ERROR_INVALID_ADDRESS
cudadebugger.h
CUDBG_ERROR_INVALID_ARGS
cudadebugger.h
CUDBG_ERROR_INVALID_ATTRIBUTE
cudadebugger.h
CUDBG_ERROR_INVALID_CALL_LEVEL
cudadebugger.h
CUDBG_ERROR_INVALID_CONTEXT
cudadebugger.h
CUDBG_ERROR_INVALID_COORDINATES
cudadebugger.h
CUDBG_ERROR_INVALID_DEVICE
cudadebugger.h
CUDBG_ERROR_INVALID_GRID
cudadebugger.h
CUDBG_ERROR_INVALID_LANE
cudadebugger.h
CUDBG_ERROR_INVALID_MEMORY_ACCESS
cudadebugger.h
CUDBG_ERROR_INVALID_MEMORY_SEGMENT
cudadebugger.h
CUDBG_ERROR_INVALID_SM
cudadebugger.h
CUDBG_ERROR_INVALID_WARP
cudadebugger.h
CUDBG_ERROR_MEMORY_MAPPING_FAILED
cudadebugger.h
CUDBG_ERROR_NO_EVENT_AVAILABLE
cudadebugger.h
CUDBG_ERROR_OS_RESOURCES
cudadebugger.h
CUDBG_ERROR_RUNNING_DEVICE
cudadebugger.h
CUDBG_ERROR_SOME_DEVICES_WATCHDOGGED
cudadebugger.h
CUDBG_ERROR_SUSPENDED_DEVICE
cudadebugger.h
CUDBG_ERROR_UNINITIALIZED
cudadebugger.h
CUDBG_ERROR_UNKNOWN
cudadebugger.h
CUDBG_ERROR_UNKNOWN_FUNCTION
cudadebugger.h
CUDBG_ERROR_ZERO_CALL_DEPTH
cudadebugger.h
CUDBG_EVENT_ATTACH_COMPLETE
cudadebugger.h
CUDBG_EVENT_CTX_CREATE
cudadebugger.h
CUDBG_EVENT_CTX_DESTROY
cudadebugger.h
CUDBG_EVENT_CTX_POP
cudadebugger.h
CUDBG_EVENT_CTX_PUSH
cudadebugger.h
CUDBG_EVENT_ELF_IMAGE_LOADED
cudadebugger.h
CUDBG_EVENT_INTERNAL_ERROR
cudadebugger.h
CUDBG_EVENT_INVALID
cudadebugger.h
CUDBG_EVENT_KERNEL_FINISHED
cudadebugger.h
CUDBG_EVENT_KERNEL_READY
cudadebugger.h
CUDBG_EVENT_TIMEOUT
cudadebugger.h
CUDBG_EXCEPTION_DEVICE_HARDWARE_STACK_OVERFLOW
cudadebugger.h
CUDBG_EXCEPTION_DEVICE_ILLEGAL_ADDRESS
cudadebugger.h
CUDBG_EXCEPTION_LANE_ILLEGAL_ADDRESS
cudadebugger.h
CUDBG_EXCEPTION_LANE_MISALIGNED_ADDRESS
cudadebugger.h
CUDBG_EXCEPTION_LANE_USER_STACK_OVERFLOW
cudadebugger.h
CUDBG_EXCEPTION_NONE
cudadebugger.h
CUDBG_EXCEPTION_UNKNOWN
cudadebugger.h
CUDBG_EXCEPTION_WARP_HARDWARE_STACK_OVERFLOW
cudadebugger.h
CUDBG_EXCEPTION_WARP_ILLEGAL_INSTRUCTION
cudadebugger.h
CUDBG_EXCEPTION_WARP_INVALID_ADDRESS_SPACE
cudadebugger.h
CUDBG_EXCEPTION_WARP_INVALID_PC
cudadebugger.h
CUDBG_EXCEPTION_WARP_MISALIGNED_ADDRESS
cudadebugger.h
CUDBG_EXCEPTION_WARP_OUT_OF_RANGE_ADDRESS
cudadebugger.h
CUDBG_GRID_STATUS_ACTIVE
cudadebugger.h
CUDBG_GRID_STATUS_INVALID
cudadebugger.h
CUDBG_GRID_STATUS_PENDING
cudadebugger.h
CUDBG_GRID_STATUS_SLEEPING
cudadebugger.h
CUDBG_GRID_STATUS_TERMINATED
cudadebugger.h
CUDBG_GRID_STATUS_UNDETERMINED
cudadebugger.h
CUDBG_KNL_TYPE_APPLICATION
cudadebugger.h
CUDBG_KNL_TYPE_SYSTEM
cudadebugger.h
CUDBG_KNL_TYPE_UNKNOWN
cudadebugger.h
CUDBG_SUCCESS
cudadebugger.h
REG_CLASS_INVALID
cudadebugger.h
REG_CLASS_LMEM_REG_OFFSET
cudadebugger.h
REG_CLASS_MEM_LOCAL
cudadebugger.h
REG_CLASS_REG_ADDR
cudadebugger.h
REG_CLASS_REG_CC
cudadebugger.h
REG_CLASS_REG_FULL
cudadebugger.h
REG_CLASS_REG_HALF
cudadebugger.h
REG_CLASS_REG_PRED
cudadebugger.h

Notices

Notice

ALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, "MATERIALS") ARE BEING PROVIDED "AS IS." NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.

Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication of otherwise under any patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all other information previously supplied. NVIDIA Corporation products are not authorized as critical components in life support devices or systems without express written approval of NVIDIA Corporation.

Trademarks

NVIDIA and the NVIDIA logo are trademarks or registered trademarks of NVIDIA Corporation in the U.S. and other countries. Other company and product names may be trademarks of the respective companies with which they are associated.