| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | |
| |
|
| | #ifndef CUDADEBUGGER_H |
| | #define CUDADEBUGGER_H |
| |
|
| |
|
| |
|
| | #include <stdlib.h> |
| | #include "cuda_stdint.h" |
| |
|
| | #if defined(__STDC__) |
| | #include <inttypes.h> |
| | #endif |
| |
|
| | #if defined(_MSC_VER) && _MSC_VER < 1800 |
| | |
| | typedef unsigned char bool; |
| | #undef false |
| | #undef true |
| | #define false 0 |
| | #define true 1 |
| | #else |
| | #include <stdbool.h> |
| | #endif |
| |
|
| | #ifdef __cplusplus |
| | extern "C" { |
| | #endif |
| |
|
| | #if defined(_WIN32) && !defined(_WIN64) |
| | |
| | #define PRIxPTR "I32x" |
| | #endif |
| |
|
| | #if defined(_WIN64) |
| | |
| | #define PRIxPTR "I64x" |
| | #endif |
| |
|
| | #if defined(_WIN32) |
| | |
| | #define PRIx64 "I64x" |
| | #define PRId64 "I64d" |
| | #endif |
| |
|
| | |
| | #if defined(_WIN32) |
| | #define _CUDBG_INLINE __inline |
| | #else |
| | #define _CUDBG_INLINE inline |
| | #endif |
| |
|
| |
|
| | |
| |
|
| | #define CUDBG_API_VERSION_MAJOR 12 |
| | #define CUDBG_API_VERSION_MINOR 0 |
| | #define CUDBG_API_VERSION_REVISION 133 |
| |
|
| | |
| |
|
| | #define CUDBG_MAX_DEVICES 32 |
| | #define CUDBG_MAX_SMS 256 |
| | #define CUDBG_MAX_WARPS 64 |
| | #define CUDBG_MAX_LANES 32 |
| |
|
| | |
| |
|
| | typedef struct { uint32_t x, y; } CuDim2; |
| | typedef struct { uint32_t x, y, z; } CuDim3; |
| |
|
| | |
| |
|
| | typedef enum { |
| | ptxUNSPECIFIEDStorage, |
| | ptxCodeStorage, |
| | ptxRegStorage, |
| | ptxSregStorage, |
| | ptxConstStorage, |
| | ptxGlobalStorage, |
| | ptxLocalStorage, |
| | ptxParamStorage, |
| | ptxSharedStorage, |
| | ptxSurfStorage, |
| | ptxTexStorage, |
| | ptxTexSamplerStorage, |
| | ptxGenericStorage, |
| | ptxIParamStorage, |
| | ptxOParamStorage, |
| | ptxFrameStorage, |
| | ptxURegStorage, |
| | ptxMAXStorage |
| | } ptxStorageKind; |
| |
|
| | |
| |
|
| | #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 |
| | #define CUDBG_ENABLE_LAUNCH_BLOCKING cudbgEnableLaunchBlocking |
| | #define CUDBG_ENABLE_INTEGRATED_MEMCHECK cudbgEnableIntegratedMemcheck |
| | #define CUDBG_ENABLE_PREEMPTION_DEBUGGING cudbgEnablePreemptionDebugging |
| | #define CUDBG_RESUME_FOR_ATTACH_DETACH cudbgResumeForAttachDetach |
| |
|
| | |
| | |
| | |
| | #define CUDBG_DEBUGGER_CAPABILITIES cudbgDebuggerCapabilities |
| |
|
| | |
| | |
| | |
| | |
| | #define CUDBG_USE_EXTERNAL_DEBUGGER cudbgUseExternalDebugger |
| |
|
| | typedef enum { |
| | CUDBG_DEBUGGER_CAPABILITY_NONE = 0, |
| | CUDBG_DEBUGGER_CAPABILITY_LAZY_FUNCTION_LOADING = (1 << 0) |
| | } CUDBGCapabilityFlags; |
| |
|
| | |
| |
|
| | #define CUDBG_REPORT_DRIVER_API_ERROR cudbgReportDriverApiError |
| | #define CUDBG_REPORT_DRIVER_API_ERROR_FLAGS cudbgReportDriverApiErrorFlags |
| | #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 |
| |
|
| | |
| |
|
| | typedef 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_RESERVED_0 = 0x0011, |
| | 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, |
| | CUDBG_ERROR_NO_DEVICE_AVAILABLE = 0x0027, |
| | CUDBG_ERROR_ATTACH_NOT_POSSIBLE = 0x0028, |
| | CUDBG_ERROR_WARP_RESUME_NOT_POSSIBLE = 0x0029, |
| | CUDBG_ERROR_INVALID_WARP_MASK = 0x002a, |
| | CUDBG_ERROR_AMBIGUOUS_MEMORY_ADDRESS = 0x002b, |
| | CUDBG_ERROR_RECURSIVE_API_CALL = 0x002c, |
| | CUDBG_ERROR_MISSING_DATA = 0x002d, |
| | CUDBG_ERROR_NOT_SUPPORTED = 0x002e, |
| | } CUDBGResult; |
| |
|
| | static const char *CUDBGResultNames[] = { |
| | "CUDBG_SUCCESS", |
| | "CUDBG_ERROR_UNKNOWN", |
| | "CUDBG_ERROR_BUFFER_TOO_SMALL", |
| | "CUDBG_ERROR_UNKNOWN_FUNCTION", |
| | "CUDBG_ERROR_INVALID_ARGS", |
| | "CUDBG_ERROR_UNINITIALIZED", |
| | "CUDBG_ERROR_INVALID_COORDINATES", |
| | "CUDBG_ERROR_INVALID_MEMORY_SEGMENT", |
| | "CUDBG_ERROR_INVALID_MEMORY_ACCESS", |
| | "CUDBG_ERROR_MEMORY_MAPPING_FAILED", |
| | "CUDBG_ERROR_INTERNAL", |
| | "CUDBG_ERROR_INVALID_DEVICE", |
| | "CUDBG_ERROR_INVALID_SM", |
| | "CUDBG_ERROR_INVALID_WARP", |
| | "CUDBG_ERROR_INVALID_LANE", |
| | "CUDBG_ERROR_SUSPENDED_DEVICE", |
| | "CUDBG_ERROR_RUNNING_DEVICE", |
| | "CUDBG_ERROR_RESERVED_0", |
| | "CUDBG_ERROR_INVALID_ADDRESS", |
| | "CUDBG_ERROR_INCOMPATIBLE_API", |
| | "CUDBG_ERROR_INITIALIZATION_FAILURE", |
| | "CUDBG_ERROR_INVALID_GRID", |
| | "CUDBG_ERROR_NO_EVENT_AVAILABLE", |
| | "CUDBG_ERROR_SOME_DEVICES_WATCHDOGGED", |
| | "CUDBG_ERROR_ALL_DEVICES_WATCHDOGGED", |
| | "CUDBG_ERROR_INVALID_ATTRIBUTE", |
| | "CUDBG_ERROR_ZERO_CALL_DEPTH", |
| | "CUDBG_ERROR_INVALID_CALL_LEVEL", |
| | "CUDBG_ERROR_COMMUNICATION_FAILURE", |
| | "CUDBG_ERROR_INVALID_CONTEXT", |
| | "CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM", |
| | "CUDBG_ERROR_MEMORY_UNMAPPING_FAILED", |
| | "CUDBG_ERROR_INCOMPATIBLE_DISPLAY_DRIVER", |
| | "CUDBG_ERROR_INVALID_MODULE", |
| | "CUDBG_ERROR_LANE_NOT_IN_SYSCALL", |
| | "CUDBG_ERROR_MEMCHECK_NOT_ENABLED", |
| | "CUDBG_ERROR_INVALID_ENVVAR_ARGS", |
| | "CUDBG_ERROR_OS_RESOURCES", |
| | "CUDBG_ERROR_FORK_FAILED", |
| | "CUDBG_ERROR_NO_DEVICE_AVAILABLE", |
| | "CUDBG_ERROR_ATTACH_NOT_POSSIBLE", |
| | "CUDBG_ERROR_WARP_RESUME_NOT_POSSIBLE", |
| | "CUDBG_ERROR_INVALID_WARP_MASK", |
| | "CUDBG_ERROR_AMBIGUOUS_MEMORY_ADDRESS", |
| | "CUDBG_ERROR_RECURSIVE_API_CALL", |
| | "CUDBG_ERROR_MISSING_DATA", |
| | "CUDBG_ERROR_NOT_SUPPORTED", |
| | }; |
| |
|
| | static _CUDBG_INLINE const char *cudbgGetErrorString (CUDBGResult error) |
| | { |
| | if (((unsigned)error)*sizeof(char *) >= sizeof(CUDBGResultNames)) |
| | return "*UNDEFINED*"; |
| | return CUDBGResultNames[(unsigned)error]; |
| | } |
| |
|
| |
|
| | |
| | typedef enum { |
| | CUDBG_REPORT_DRIVER_API_ERROR_FLAGS_NONE = 0x0000, |
| | CUDBG_REPORT_DRIVER_API_ERROR_FLAGS_SUPPRESS_NOT_READY = ( 1U << 0 ), |
| | } CUDBGReportDriverApiErrorFlags; |
| |
|
| | |
| |
|
| | typedef enum { |
| | CUDBG_ATTR_GRID_LAUNCH_BLOCKING = 0x000, |
| | CUDBG_ATTR_GRID_TID = 0x001, |
| | } CUDBGAttribute; |
| |
|
| | typedef struct { |
| | CUDBGAttribute attribute; |
| | uint64_t value; |
| | } CUDBGAttributeValuePair; |
| |
|
| | typedef 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, |
| | } CUDBGGridStatus; |
| |
|
| | |
| |
|
| | typedef enum { |
| | CUDBG_KNL_TYPE_UNKNOWN = 0x000, |
| | CUDBG_KNL_TYPE_SYSTEM = 0x001, |
| | CUDBG_KNL_TYPE_APPLICATION = 0x002, |
| | } CUDBGKernelType; |
| |
|
| | |
| |
|
| | typedef enum { |
| | CUDBG_ELF_IMAGE_PROPERTIES_SYSTEM = 0x001, |
| | } CUDBGElfImageProperties; |
| |
|
| | |
| |
|
| | typedef 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, |
| | REG_CLASS_UREG_PRED = 0x009, |
| | REG_CLASS_UREG_HALF = 0x00a, |
| | REG_CLASS_UREG_FULL = 0x00b, |
| | } CUDBGRegClass; |
| |
|
| | |
| |
|
| | typedef 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, |
| | CUDBG_EVENT_ELF_IMAGE_UNLOADED = 0x00c, |
| | CUDBG_EVENT_FUNCTIONS_LOADED = 0x00d, |
| | } CUDBGEventKind; |
| |
|
| | |
| |
|
| | typedef enum { |
| | CUDBG_KNL_ORIGIN_CPU = 0x000, |
| | CUDBG_KNL_ORIGIN_GPU = 0x001, |
| | } CUDBGKernelOrigin; |
| |
|
| | |
| |
|
| | typedef enum { |
| | CUDBG_KNL_LAUNCH_NOTIFY_EVENT = 0x000, |
| | CUDBG_KNL_LAUNCH_NOTIFY_DEFER = 0x001, |
| | } CUDBGKernelLaunchNotifyMode; |
| |
|
| | |
| |
|
| | typedef enum { |
| | CUDBG_EVENT_QUEUE_TYPE_SYNC = 0, |
| | CUDBG_EVENT_QUEUE_TYPE_ASYNC = 1, |
| | } CUDBGEventQueueType; |
| |
|
| | |
| |
|
| | typedef enum { |
| | CUDBG_ELF_IMAGE_TYPE_NONRELOCATED = 0, |
| | CUDBG_ELF_IMAGE_TYPE_RELOCATED = 1, |
| | } CUDBGElfImageType; |
| |
|
| | |
| |
|
| | typedef enum { |
| | CUDBG_ADJ_PREVIOUS_ADDRESS = 0x000, |
| | CUDBG_ADJ_CURRENT_ADDRESS = 0x001, |
| | CUDBG_ADJ_NEXT_ADDRESS = 0x002, |
| | } CUDBGAdjAddrAction; |
| |
|
| | |
| | typedef struct { |
| | CUDBGEventKind 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; |
| | } CUDBGEvent30; |
| |
|
| | |
| | typedef struct { |
| | CUDBGEventKind 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; |
| | } CUDBGEvent32; |
| |
|
| | |
| | typedef struct { |
| | CUDBGEventKind 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; |
| | CUDBGKernelType 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; |
| | } CUDBGEvent42; |
| |
|
| | typedef struct { |
| | CUDBGEventKind kind; |
| | union cases50_st { |
| | struct elfImageLoaded50_st { |
| | char *relocatedElfImage; |
| | char *nonRelocatedElfImage; |
| | uint32_t size32; |
| | uint32_t dev; |
| | uint64_t context; |
| | uint64_t module; |
| | uint64_t size; |
| | } elfImageLoaded; |
| | struct kernelReady50_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; |
| | CUDBGKernelType type; |
| | } kernelReady; |
| | struct kernelFinished50_st { |
| | uint32_t dev; |
| | uint32_t gridId; |
| | uint32_t tid; |
| | uint64_t context; |
| | uint64_t module; |
| | uint64_t function; |
| | uint64_t functionEntry; |
| | } kernelFinished; |
| | struct contextPush50_st { |
| | uint32_t dev; |
| | uint32_t tid; |
| | uint64_t context; |
| | } contextPush; |
| | struct contextPop50_st { |
| | uint32_t dev; |
| | uint32_t tid; |
| | uint64_t context; |
| | } contextPop; |
| | struct contextCreate50_st { |
| | uint32_t dev; |
| | uint32_t tid; |
| | uint64_t context; |
| | } contextCreate; |
| | struct contextDestroy50_st { |
| | uint32_t dev; |
| | uint32_t tid; |
| | uint64_t context; |
| | } contextDestroy; |
| | struct internalError50_st { |
| | CUDBGResult errorType; |
| | } internalError; |
| | } cases; |
| | } CUDBGEvent50; |
| |
|
| | typedef struct { |
| | CUDBGEventKind kind; |
| | union cases55_st { |
| | struct elfImageLoaded55_st { |
| | char *relocatedElfImage; |
| | char *nonRelocatedElfImage; |
| | uint32_t size32; |
| | uint32_t dev; |
| | uint64_t context; |
| | uint64_t module; |
| | uint64_t size; |
| | } elfImageLoaded; |
| | struct kernelReady55_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; |
| | CUDBGKernelType type; |
| | uint64_t parentGridId; |
| | uint64_t gridId64; |
| | CUDBGKernelOrigin origin; |
| | } kernelReady; |
| | struct kernelFinished55_st { |
| | uint32_t dev; |
| | uint32_t gridId; |
| | uint32_t tid; |
| | uint64_t context; |
| | uint64_t module; |
| | uint64_t function; |
| | uint64_t functionEntry; |
| | uint64_t gridId64; |
| | } kernelFinished; |
| | struct contextPush55_st { |
| | uint32_t dev; |
| | uint32_t tid; |
| | uint64_t context; |
| | } contextPush; |
| | struct contextPop55_st { |
| | uint32_t dev; |
| | uint32_t tid; |
| | uint64_t context; |
| | } contextPop; |
| | struct contextCreate55_st { |
| | uint32_t dev; |
| | uint32_t tid; |
| | uint64_t context; |
| | } contextCreate; |
| | struct contextDestroy55_st { |
| | uint32_t dev; |
| | uint32_t tid; |
| | uint64_t context; |
| | } contextDestroy; |
| | struct internalError55_st { |
| | CUDBGResult errorType; |
| | } internalError; |
| | } cases; |
| | } CUDBGEvent55; |
| |
|
| | #pragma pack(push,1) |
| | typedef struct { |
| | CUDBGEventKind kind; |
| | union cases_st { |
| | struct elfImageLoaded_st { |
| | uint32_t dev; |
| | uint64_t context; |
| | uint64_t module; |
| | uint64_t size; |
| | uint64_t handle; |
| | uint32_t properties; |
| | } elfImageLoaded; |
| | struct elfImageUnloaded_st { |
| | uint32_t dev; |
| | uint64_t context; |
| | uint64_t module; |
| | uint64_t size; |
| | uint64_t handle; |
| | } elfImageUnloaded; |
| | struct kernelReady_st{ |
| | uint32_t dev; |
| | uint32_t tid; |
| | uint64_t gridId; |
| | uint64_t context; |
| | uint64_t module; |
| | uint64_t function; |
| | uint64_t functionEntry; |
| | CuDim3 gridDim; |
| | CuDim3 blockDim; |
| | CUDBGKernelType type; |
| | uint64_t parentGridId; |
| | CUDBGKernelOrigin origin; |
| | } kernelReady; |
| | struct kernelFinished_st { |
| | uint32_t dev; |
| | uint32_t tid; |
| | uint64_t context; |
| | uint64_t module; |
| | uint64_t function; |
| | uint64_t functionEntry; |
| | uint64_t gridId; |
| | } 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 { |
| | CUDBGResult errorType; |
| | } internalError; |
| | struct functionsLoaded_st { |
| | uint32_t dev; |
| | uint32_t count; |
| | uint64_t context; |
| | uint64_t module; |
| | } functionsLoaded; |
| | } cases; |
| | } CUDBGEvent; |
| | #pragma pack(pop) |
| |
|
| |
|
| | typedef struct { |
| | uint32_t tid; |
| | } CUDBGEventCallbackData40; |
| |
|
| | typedef struct { |
| | uint32_t tid; |
| | uint32_t timeout; |
| | } CUDBGEventCallbackData; |
| |
|
| | #pragma pack(push,1) |
| | typedef struct { |
| | uint32_t dev; |
| | uint64_t gridId64; |
| | uint32_t tid; |
| | uint64_t context; |
| | uint64_t module; |
| | uint64_t function; |
| | uint64_t functionEntry; |
| | CuDim3 gridDim; |
| | CuDim3 blockDim; |
| | CUDBGKernelType type; |
| | uint64_t parentGridId; |
| | CUDBGKernelOrigin origin; |
| | } CUDBGGridInfo55; |
| |
|
| | typedef struct { |
| | uint32_t dev; |
| | uint64_t gridId64; |
| | uint32_t tid; |
| | uint64_t context; |
| | uint64_t module; |
| | uint64_t function; |
| | uint64_t functionEntry; |
| | CuDim3 gridDim; |
| | CuDim3 blockDim; |
| | CUDBGKernelType type; |
| | uint64_t parentGridId; |
| | CUDBGKernelOrigin origin; |
| | CuDim3 clusterDim; |
| | } CUDBGGridInfo; |
| | #pragma pack(pop) |
| |
|
| | #pragma pack(push,1) |
| | typedef struct { |
| | uint64_t sectionIndex; |
| | uint64_t address; |
| | } CUDBGLoadedFunctionInfo; |
| | #pragma pack(pop) |
| |
|
| | typedef void (*CUDBGNotifyNewEventCallback31)(void *data); |
| | typedef void (*CUDBGNotifyNewEventCallback40)(CUDBGEventCallbackData40 *data); |
| | typedef void (*CUDBGNotifyNewEventCallback)(CUDBGEventCallbackData *data); |
| |
|
| | |
| |
|
| | typedef 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, |
| | CUDBG_EXCEPTION_WARP_ILLEGAL_ADDRESS = 14, |
| | CUDBG_EXCEPTION_LANE_NONMIGRATABLE_ATOMSYS = 15, |
| | CUDBG_EXCEPTION_LANE_INVALID_ATOMSYS = 16, |
| | CUDBG_EXCEPTION_CLUSTER_OUT_OF_RANGE_ADDRESS = 17, |
| | CUDBG_EXCEPTION_CLUSTER_BLOCK_NOT_PRESENT = 18, |
| | } CUDBGException_t; |
| |
|
| | typedef enum { |
| | CUDBG_UVM_MEMORY_ACCESS_TYPE_UNKNOWN = 0xFFFFFFFFU, |
| | CUDBG_UVM_MEMORY_ACCESS_TYPE_INVALID = 0, |
| | CUDBG_UVM_MEMORY_ACCESS_TYPE_READ = 1, |
| | CUDBG_UVM_MEMORY_ACCESS_TYPE_WRITE = 2, |
| | CUDBG_UVM_MEMORY_ACCESS_TYPE_ATOMIC = 3, |
| | CUDBG_UVM_MEMORY_ACCESS_TYPE_PREFETCH = 4, |
| | } CUDBGUvmMemoryAccessType_t; |
| |
|
| | typedef enum { |
| | CUDBG_UVM_FAULT_TYPE_UNKNOWN = 0xFFFFFFFFU, |
| | CUDBG_UVM_FAULT_TYPE_INVALID = 0, |
| | CUDBG_UVM_FAULT_TYPE_INVALID_PDE = 1, |
| | CUDBG_UVM_FAULT_TYPE_INVALID_PTE = 2, |
| | CUDBG_UVM_FAULT_TYPE_WRITE = 3, |
| | CUDBG_UVM_FAULT_TYPE_ATOMIC = 4, |
| | CUDBG_UVM_FAULT_TYPE_INVALID_PDE_SIZE = 5, |
| | CUDBG_UVM_FAULT_TYPE_LIMIT_VIOLATION = 6, |
| | CUDBG_UVM_FAULT_TYPE_UNBOUND_INST_BLOCK = 7, |
| | CUDBG_UVM_FAULT_TYPE_PRIV_VIOLATION = 8, |
| | CUDBG_UVM_FAULT_TYPE_PITCH_MASK_VIOLATION = 9, |
| | CUDBG_UVM_FAULT_TYPE_WORK_CREATION = 10, |
| | CUDBG_UVM_FAULT_TYPE_UNSUPPORTED_APERTURE = 11, |
| | CUDBG_UVM_FAULT_TYPE_COMPRESSION_FAILURE = 12, |
| | CUDBG_UVM_FAULT_TYPE_UNSUPPORTED_KIND = 13, |
| | CUDBG_UVM_FAULT_TYPE_REGION_VIOLATION = 14, |
| | CUDBG_UVM_FAULT_TYPE_POISON = 15, |
| | } CUDBGUvmFaultType_t; |
| |
|
| | typedef enum { |
| | CUDBG_UVM_FATAL_REASON_UNKNOWN = 0xFFFFFFFFU, |
| | CUDBG_UVM_FATAL_REASON_INVALID = 0, |
| | CUDBG_UVM_FATAL_REASON_INVALID_ADDRESS = 1, |
| | CUDBG_UVM_FATAL_REASON_INVALID_PERMISSIONS = 2, |
| | CUDBG_UVM_FATAL_REASON_INVALID_FAULT_TYPE = 3, |
| | CUDBG_UVM_FATAL_REASON_OUT_OF_MEMORY = 4, |
| | CUDBG_UVM_FATAL_REASON_INTERNAL_ERROR = 5, |
| | CUDBG_UVM_FATAL_REASON_INVALID_OPERATION = 6, |
| | } CUDBGUvmFatalReason_t; |
| |
|
| | |
| | #pragma pack(push,1) |
| | typedef struct { |
| | uint64_t virtualPC; |
| | CuDim3 threadIdx; |
| | CUDBGException_t exception; |
| | } CUDBGLaneState; |
| |
|
| | typedef struct { |
| | uint64_t gridId; |
| | uint64_t errorPC; |
| | CuDim3 blockIdx; |
| | uint32_t validLanes; |
| | uint32_t activeLanes; |
| | uint32_t errorPCValid; |
| | CUDBGLaneState lane[32]; |
| | } CUDBGWarpState60; |
| |
|
| | typedef struct { |
| | uint64_t gridId; |
| | uint64_t errorPC; |
| | CuDim3 blockIdx; |
| | uint32_t validLanes; |
| | uint32_t activeLanes; |
| | uint32_t errorPCValid; |
| | CUDBGLaneState lane[32]; |
| | CuDim3 clusterIdx; |
| | } CUDBGWarpState; |
| | #pragma pack(pop) |
| |
|
| | #pragma pack(push,1) |
| | typedef struct { |
| | uint64_t startAddress; |
| | uint64_t size; |
| | } CUDBGMemoryInfo; |
| | #pragma pack(pop) |
| |
|
| | |
| |
|
| | typedef const struct CUDBGAPI_st *CUDBGAPI; |
| |
|
| | CUDBGResult cudbgGetAPI(uint32_t major, uint32_t minor, uint32_t rev, CUDBGAPI *api); |
| | CUDBGResult cudbgGetAPIVersion(uint32_t *major, uint32_t *minor, uint32_t *rev); |
| | CUDBGResult cudbgMain(int apiClientPid, uint32_t apiClientRevision, int sessionId, int attachState, |
| | int attachEventInitialized, int writeFd, int detachFd, int attachStubInUse, |
| | int enablePreemptionDebugging); |
| | void cudbgApiInit(uint32_t arg); |
| | void cudbgApiAttach(void); |
| | void cudbgApiDetach(void); |
| | void CUDBG_REPORT_DRIVER_API_ERROR(void); |
| | void CUDBG_REPORT_DRIVER_INTERNAL_ERROR(void); |
| |
|
| | extern uint32_t CUDBG_IPC_FLAG_NAME; |
| | extern uint32_t CUDBG_RPC_ENABLED; |
| | extern uint32_t CUDBG_APICLIENT_PID; |
| | extern uint32_t CUDBG_I_AM_DEBUGGER; |
| | extern uint32_t CUDBG_DEBUGGER_INITIALIZED; |
| | extern uint32_t CUDBG_APICLIENT_REVISION; |
| | extern uint32_t CUDBG_SESSION_ID; |
| | extern uint64_t CUDBG_REPORTED_DRIVER_API_ERROR_CODE; |
| | extern uint64_t CUDBG_REPORTED_DRIVER_API_ERROR_FUNC_NAME_SIZE; |
| | extern uint64_t CUDBG_REPORTED_DRIVER_API_ERROR_FUNC_NAME_ADDR; |
| | extern uint64_t CUDBG_REPORTED_DRIVER_INTERNAL_ERROR_CODE; |
| | extern uint32_t CUDBG_ATTACH_HANDLER_AVAILABLE; |
| | extern uint32_t CUDBG_DETACH_SUSPENDED_DEVICES_MASK; |
| | extern uint32_t CUDBG_ENABLE_LAUNCH_BLOCKING; |
| | extern uint32_t CUDBG_ENABLE_PREEMPTION_DEBUGGING; |
| | extern uint32_t CUDBG_RESUME_FOR_ATTACH_DETACH; |
| | extern uint32_t CUDBG_REPORT_DRIVER_API_ERROR_FLAGS; |
| | extern uint32_t CUDBG_DEBUGGER_CAPABILITIES; |
| |
|
| | |
| | extern uint32_t CUDBG_ENABLE_INTEGRATED_MEMCHECK; |
| |
|
| | struct CUDBGAPI_st { |
| | |
| | CUDBGResult (*initialize)(void); |
| | CUDBGResult (*finalize)(void); |
| |
|
| | |
| | CUDBGResult (*suspendDevice)(uint32_t dev); |
| | CUDBGResult (*resumeDevice)(uint32_t dev); |
| | CUDBGResult (*singleStepWarp40)(uint32_t dev, uint32_t sm, uint32_t wp); |
| |
|
| | |
| | CUDBGResult (*setBreakpoint31)(uint64_t addr); |
| | CUDBGResult (*unsetBreakpoint31)(uint64_t addr); |
| |
|
| | |
| | CUDBGResult (*readGridId50)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t *gridId); |
| | CUDBGResult (*readBlockIdx32)(uint32_t dev, uint32_t sm, uint32_t wp, CuDim2 *blockIdx); |
| | CUDBGResult (*readThreadIdx)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CuDim3 *threadIdx); |
| | CUDBGResult (*readBrokenWarps)(uint32_t dev, uint32_t sm, uint64_t *brokenWarpsMask); |
| | CUDBGResult (*readValidWarps)(uint32_t dev, uint32_t sm, uint64_t *validWarpsMask); |
| | CUDBGResult (*readValidLanes)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t *validLanesMask); |
| | CUDBGResult (*readActiveLanes)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t *activeLanesMask); |
| | CUDBGResult (*readCodeMemory)(uint32_t dev, uint64_t addr, void *buf, uint32_t sz); |
| | CUDBGResult (*readConstMemory)(uint32_t dev, uint64_t addr, void *buf, uint32_t sz); |
| | CUDBGResult (*readGlobalMemory31)(uint32_t dev, uint64_t addr, void *buf, uint32_t sz); |
| | CUDBGResult (*readParamMemory)(uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void *buf, uint32_t sz); |
| | CUDBGResult (*readSharedMemory)(uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void *buf, uint32_t sz); |
| | CUDBGResult (*readLocalMemory)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void *buf, uint32_t sz); |
| | CUDBGResult (*readRegister)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t *val); |
| | CUDBGResult (*readPC)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t *pc); |
| | CUDBGResult (*readVirtualPC)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t *pc); |
| | CUDBGResult (*readLaneStatus)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, bool *error); |
| |
|
| | |
| | CUDBGResult (*writeGlobalMemory31)(uint32_t dev, uint64_t addr, const void *buf, uint32_t sz); |
| | CUDBGResult (*writeParamMemory)(uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void *buf, uint32_t sz); |
| | CUDBGResult (*writeSharedMemory)(uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void *buf, uint32_t sz); |
| | CUDBGResult (*writeLocalMemory)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void *buf, uint32_t sz); |
| | CUDBGResult (*writeRegister)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t val); |
| |
|
| | |
| | CUDBGResult (*getGridDim32)(uint32_t dev, uint32_t sm, uint32_t wp, CuDim2 *gridDim); |
| | CUDBGResult (*getBlockDim)(uint32_t dev, uint32_t sm, uint32_t wp, CuDim3 *blockDim); |
| | CUDBGResult (*getTID)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t *tid); |
| | CUDBGResult (*getElfImage32)(uint32_t dev, uint32_t sm, uint32_t wp, bool relocated, void **elfImage, uint32_t *size); |
| |
|
| | |
| | CUDBGResult (*getDeviceType)(uint32_t dev, char *buf, uint32_t sz); |
| | CUDBGResult (*getSmType)(uint32_t dev, char *buf, uint32_t sz); |
| | CUDBGResult (*getNumDevices)(uint32_t *numDev); |
| | CUDBGResult (*getNumSMs)(uint32_t dev, uint32_t *numSMs); |
| | CUDBGResult (*getNumWarps)(uint32_t dev, uint32_t *numWarps); |
| | CUDBGResult (*getNumLanes)(uint32_t dev, uint32_t *numLanes); |
| | CUDBGResult (*getNumRegisters)(uint32_t dev, uint32_t *numRegs); |
| |
|
| | |
| | CUDBGResult (*getPhysicalRegister30)(uint64_t pc, char *reg, uint32_t *buf, uint32_t sz, uint32_t *numPhysRegs, CUDBGRegClass *regClass); |
| | CUDBGResult (*disassemble)(uint32_t dev, uint64_t addr, uint32_t *instSize, char *buf, uint32_t sz); |
| | CUDBGResult (*isDeviceCodeAddress55)(uintptr_t addr, bool *isDeviceAddress); |
| | CUDBGResult (*lookupDeviceCodeSymbol)(char *symName, bool *symFound, uintptr_t *symAddr); |
| |
|
| | |
| | CUDBGResult (*setNotifyNewEventCallback31)(CUDBGNotifyNewEventCallback31 callback, void *data); |
| | CUDBGResult (*getNextEvent30)(CUDBGEvent30 *event); |
| | CUDBGResult (*acknowledgeEvent30)(CUDBGEvent30 *event); |
| |
|
| | |
| | CUDBGResult (*getGridAttribute)(uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttribute attr, uint64_t *value); |
| | CUDBGResult (*getGridAttributes)(uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttributeValuePair *pairs, uint32_t numPairs); |
| | 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); |
| | CUDBGResult (*readLaneException)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CUDBGException_t *exception); |
| | CUDBGResult (*getNextEvent32)(CUDBGEvent32 *event); |
| | CUDBGResult (*acknowledgeEvents42)(void); |
| |
|
| | |
| | CUDBGResult (*readCallDepth32)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t *depth); |
| | CUDBGResult (*readReturnAddress32)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t *ra); |
| | CUDBGResult (*readVirtualReturnAddress32)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t *ra); |
| |
|
| | |
| | CUDBGResult (*readGlobalMemory55)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void *buf, uint32_t sz); |
| | CUDBGResult (*writeGlobalMemory55)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void *buf, uint32_t sz); |
| | CUDBGResult (*readPinnedMemory)(uint64_t addr, void *buf, uint32_t sz); |
| | CUDBGResult (*writePinnedMemory)(uint64_t addr, const void *buf, uint32_t sz); |
| | CUDBGResult (*setBreakpoint)(uint32_t dev, uint64_t addr); |
| | CUDBGResult (*unsetBreakpoint)(uint32_t dev, uint64_t addr); |
| | CUDBGResult (*setNotifyNewEventCallback40)(CUDBGNotifyNewEventCallback40 callback); |
| |
|
| | |
| | CUDBGResult (*getNextEvent42)(CUDBGEvent42 *event); |
| | 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); |
| | CUDBGResult (*readBlockIdx)(uint32_t dev, uint32_t sm, uint32_t wp, CuDim3 *blockIdx); |
| | CUDBGResult (*getGridDim)(uint32_t dev, uint32_t sm, uint32_t wp, CuDim3 *gridDim); |
| | CUDBGResult (*readCallDepth)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t *depth); |
| | CUDBGResult (*readReturnAddress)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t *ra); |
| | CUDBGResult (*readVirtualReturnAddress)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t *ra); |
| | CUDBGResult (*getElfImage)(uint32_t dev, uint32_t sm, uint32_t wp, bool relocated, void **elfImage, uint64_t *size); |
| |
|
| | |
| | CUDBGResult (*getHostAddrFromDeviceAddr)(uint32_t dev, uint64_t device_addr, uint64_t *host_addr); |
| | CUDBGResult (*singleStepWarp41)(uint32_t dev, uint32_t sm, uint32_t wp, uint64_t *warpMask); |
| | CUDBGResult (*setNotifyNewEventCallback)(CUDBGNotifyNewEventCallback callback); |
| | CUDBGResult (*readSyscallCallDepth)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t *depth); |
| |
|
| | |
| | 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); |
| |
|
| | |
| | CUDBGResult (*clearAttachState)(void); |
| | CUDBGResult (*getNextSyncEvent50)(CUDBGEvent50 *event); |
| | CUDBGResult (*memcheckReadErrorAddress)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t *address, ptxStorageKind *storage); |
| | CUDBGResult (*acknowledgeSyncEvents)(void); |
| | CUDBGResult (*getNextAsyncEvent50)(CUDBGEvent50 *event); |
| | CUDBGResult (*requestCleanupOnDetach55)(void); |
| | CUDBGResult (*initializeAttachStub)(void); |
| | CUDBGResult (*getGridStatus50)(uint32_t dev, uint32_t gridId, CUDBGGridStatus *status); |
| |
|
| | |
| | CUDBGResult (*getNextSyncEvent55)(CUDBGEvent55 *event); |
| | CUDBGResult (*getNextAsyncEvent55)(CUDBGEvent55 *event); |
| | CUDBGResult (*getGridInfo55)(uint32_t dev, uint64_t gridId64, CUDBGGridInfo55 *gridInfo); |
| | CUDBGResult (*readGridId)(uint32_t dev, uint32_t sm, uint32_t wp, uint64_t *gridId64); |
| | CUDBGResult (*getGridStatus)(uint32_t dev, uint64_t gridId64, CUDBGGridStatus *status); |
| | CUDBGResult (*setKernelLaunchNotificationMode) (CUDBGKernelLaunchNotifyMode mode); |
| | CUDBGResult (*getDevicePCIBusInfo) (uint32_t devId, uint32_t *pciBusId, uint32_t *pciDevId); |
| | CUDBGResult (*readDeviceExceptionState80) (uint32_t devId, uint64_t *exceptionSMMask); |
| |
|
| | |
| | CUDBGResult (*getAdjustedCodeAddress)(uint32_t devId, uint64_t address, uint64_t *adjustedAddress, CUDBGAdjAddrAction adjAction); |
| | CUDBGResult (*readErrorPC)(uint32_t devId, uint32_t sm, uint32_t wp, uint64_t *errorPC, bool *errorPCValid); |
| | CUDBGResult (*getNextEvent)(CUDBGEventQueueType type, CUDBGEvent *event); |
| | CUDBGResult (*getElfImageByHandle)(uint32_t devId, uint64_t handle, CUDBGElfImageType type, void *elfImage, uint64_t size); |
| | CUDBGResult (*resumeWarpsUntilPC)(uint32_t devId, uint32_t sm, uint64_t warpMask, uint64_t virtPC); |
| | CUDBGResult (*readWarpState60)(uint32_t devId, uint32_t sm, uint32_t wp, CUDBGWarpState60 *state); |
| | CUDBGResult (*readRegisterRange)(uint32_t devId, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t index, uint32_t registers_size, uint32_t *registers); |
| | CUDBGResult (*readGenericMemory)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void *buf, uint32_t sz); |
| | CUDBGResult (*writeGenericMemory)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void *buf, uint32_t sz); |
| | CUDBGResult (*readGlobalMemory)(uint64_t addr, void *buf, uint32_t sz); |
| | CUDBGResult (*writeGlobalMemory)(uint64_t addr, const void *buf, uint32_t sz); |
| | CUDBGResult (*getManagedMemoryRegionInfo)(uint64_t startAddress, CUDBGMemoryInfo *memoryInfo, uint32_t memoryInfo_size, uint32_t *numEntries); |
| | CUDBGResult (*isDeviceCodeAddress)(uintptr_t addr, bool *isDeviceAddress); |
| | CUDBGResult (*requestCleanupOnDetach)(uint32_t appResumeFlag); |
| |
|
| | |
| | CUDBGResult (*readPredicates)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t predicates_size, uint32_t *predicates); |
| | CUDBGResult (*writePredicates)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t predicates_size, const uint32_t *predicates); |
| | CUDBGResult (*getNumPredicates)(uint32_t dev, uint32_t *numPredicates); |
| | CUDBGResult (*readCCRegister)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t *val); |
| | CUDBGResult (*writeCCRegister)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t val); |
| |
|
| | CUDBGResult (*getDeviceName)(uint32_t dev, char *buf, uint32_t sz); |
| | CUDBGResult (*singleStepWarp)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t nsteps, uint64_t *warpMask); |
| |
|
| | |
| | CUDBGResult (*readDeviceExceptionState) (uint32_t devId, uint64_t *mask, uint32_t numWords); |
| |
|
| | |
| | CUDBGResult (*getNumUniformRegisters)(uint32_t dev, uint32_t *numRegs); |
| | CUDBGResult (*readUniformRegisterRange)(uint32_t devId, uint32_t sm, uint32_t wp, uint32_t regno, uint32_t registers_size, uint32_t *registers); |
| | CUDBGResult (*writeUniformRegister)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t regno, uint32_t val); |
| | CUDBGResult (*getNumUniformPredicates)(uint32_t dev, uint32_t *numPredicates); |
| | CUDBGResult (*readUniformPredicates)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t predicates_size, uint32_t *predicates); |
| | CUDBGResult (*writeUniformPredicates)(uint32_t dev, uint32_t sm, uint32_t wp, uint32_t predicates_size, const uint32_t *predicates); |
| |
|
| | |
| | CUDBGResult (*getLoadedFunctionInfo) (uint32_t devId, uint64_t handle, CUDBGLoadedFunctionInfo *info, uint32_t numEntries); |
| |
|
| | |
| | CUDBGResult (*getGridInfo)(uint32_t dev, uint64_t gridId64, CUDBGGridInfo *gridInfo); |
| | CUDBGResult (*getClusterDim)(uint32_t dev, uint64_t gridId64, CuDim3 *clusterDim); |
| | CUDBGResult (*readWarpState)(uint32_t dev, uint32_t sm, uint32_t wp, CUDBGWarpState *state); |
| | CUDBGResult (*readClusterIdx)(uint32_t dev, uint32_t sm, uint32_t wp, CuDim3 *clusterIdx); |
| | }; |
| |
|
| | #ifdef __cplusplus |
| | } |
| | #endif |
| |
|
| | #endif |
| |
|