This page contains changes for a test release of ROCm. Read the latest Linux release of ROCm documentation for your production environments.

amd-dbgapi.h File Reference

amd-dbgapi.h File Reference#

AMD DBG API: amd-dbgapi.h File Reference
amd-dbgapi.h File Reference

AMD debugger API interface. More...

#include <sys/types.h>
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  amd_dbgapi_architecture_id_t
 Opaque architecture handle. More...
 
struct  amd_dbgapi_process_id_t
 Opaque process handle. More...
 
struct  amd_dbgapi_core_state_data_t
 AMDGPU corefile state data for a process. More...
 
struct  amd_dbgapi_code_object_id_t
 Opaque code object handle. More...
 
struct  amd_dbgapi_agent_id_t
 Opaque agent handle. More...
 
struct  amd_dbgapi_queue_id_t
 Opaque queue handle. More...
 
struct  amd_dbgapi_dispatch_id_t
 Opaque dispatch handle. More...
 
struct  amd_dbgapi_workgroup_id_t
 Opaque workgroup handle. More...
 
struct  amd_dbgapi_wave_id_t
 Opaque wave handle. More...
 
struct  amd_dbgapi_displaced_stepping_id_t
 Opaque displaced stepping handle. More...
 
struct  amd_dbgapi_watchpoint_id_t
 Opaque hardware data watchpoint handle. More...
 
struct  amd_dbgapi_watchpoint_list_t
 A set of watchpoints. More...
 
struct  amd_dbgapi_register_class_id_t
 Opaque register class handle. More...
 
struct  amd_dbgapi_register_id_t
 Opaque register handle. More...
 
struct  amd_dbgapi_direct_call_register_pair_information_t
 Instruction information for direct call instructions. More...
 
struct  amd_dbgapi_address_class_id_t
 Opaque source language address class handle. More...
 
struct  amd_dbgapi_address_space_id_t
 Opaque address space handle. More...
 
struct  amd_dbgapi_event_id_t
 Opaque event handle. More...
 
struct  amd_dbgapi_breakpoint_id_t
 Opaque breakpoint handle. More...
 
struct  amd_dbgapi_callbacks_s
 Callbacks that the client of the library must provide. More...
 

Macros

#define AMD_DBGAPI_CALL
 
#define AMD_DBGAPI_EXPORT   AMD_DBGAPI_EXPORT_DECORATOR AMD_DBGAPI_CALL
 
#define AMD_DBGAPI_IMPORT   AMD_DBGAPI_IMPORT_DECORATOR AMD_DBGAPI_CALL
 
#define AMD_DBGAPI   AMD_DBGAPI_IMPORT
 
#define AMD_DBGAPI_HANDLE_LITERAL(type, value)   {value}
 
#define DEPRECATED   = AMD_DBGAPI_WAVE_STOP_REASON_ADDRESS_ERROR
 Old deprecated name kept for backward compatibility. More...
 
#define AMD_DBGAPI_VERSION_0_54
 The function was introduced in version 0.54 of the interface and has the symbol version string of "@AMD_DBGAPI_NAME@_0.54". More...
 
#define AMD_DBGAPI_VERSION_0_56
 The function was introduced in version 0.56 of the interface and has the symbol version string of "@AMD_DBGAPI_NAME@_0.56". More...
 
#define AMD_DBGAPI_VERSION_0_58
 The function was introduced in version 0.58 of the interface and has the symbol version string of "@AMD_DBGAPI_NAME@_0.58". More...
 
#define AMD_DBGAPI_VERSION_0_62
 The function was introduced in version 0.62 of the interface and has the symbol version string of "@AMD_DBGAPI_NAME@_0.62". More...
 
#define AMD_DBGAPI_VERSION_0_64
 The function was introduced in version 0.64 of the interface and has the symbol version string of "@AMD_DBGAPI_NAME@_0.64". More...
 
#define AMD_DBGAPI_VERSION_0_67
 The function was introduced in version 0.67 of the interface and has the symbol version string of "@AMD_DBGAPI_NAME@_0.67". More...
 
#define AMD_DBGAPI_VERSION_0_68
 The function was introduced in version 0.68 of the interface and has the symbol version string of "@AMD_DBGAPI_NAME@_0.68". More...
 
#define AMD_DBGAPI_VERSION_0_70
 The function was introduced in version 0.70 of the interface and has the symbol version string of "@AMD_DBGAPI_NAME@_0.70". More...
 
#define AMD_DBGAPI_VERSION_0_76
 The function was introduced in version 0.76 of the interface and has the symbol version string of "@AMD_DBGAPI_NAME@_0.76". More...
 
#define AMD_DBGAPI_VERSION_0_77
 The function was introduced in version 0.77 of the interface and has the symbol version string of "@AMD_DBGAPI_NAME@_0.77". More...
 
#define AMD_DBGAPI_VERSION_MAJOR   @PROJECT_VERSION_MAJOR@
 The semantic version of the interface following [semver.org][semver] rules. More...
 
#define AMD_DBGAPI_VERSION_MINOR   @PROJECT_VERSION_MINOR@
 The minor version of the interface as a macro so it can be used by the preprocessor. More...
 
#define AMD_DBGAPI_ARCHITECTURE_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_architecture_id_t, 0)
 The NULL architecture handle. More...
 
#define AMD_DBGAPI_PROCESS_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_process_id_t, 0)
 The NULL process handle. More...
 
#define AMD_DBGAPI_CODE_OBJECT_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_code_object_id_t, 0)
 The NULL code object handle. More...
 
#define AMD_DBGAPI_AGENT_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_agent_id_t, 0)
 The NULL agent handle. More...
 
#define AMD_DBGAPI_QUEUE_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_queue_id_t, 0)
 The NULL queue handle. More...
 
#define AMD_DBGAPI_DISPATCH_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_dispatch_id_t, 0)
 The NULL dispatch handle. More...
 
#define AMD_DBGAPI_WORKGROUP_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_workgroup_id_t, 0)
 The NULL workgroup handle. More...
 
#define AMD_DBGAPI_WAVE_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_wave_id_t, 0)
 The NULL wave handle. More...
 
#define AMD_DBGAPI_DISPLACED_STEPPING_NONE    (amd_dbgapi_displaced_stepping_id_t{ 0 })
 The NULL displaced stepping handle. More...
 
#define AMD_DBGAPI_WATCHPOINT_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_watchpoint_id_t, 0)
 The NULL hardware data watchpoint handle. More...
 
#define AMD_DBGAPI_REGISTER_CLASS_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_register_class_id_t, 0)
 The NULL register class handle. More...
 
#define AMD_DBGAPI_REGISTER_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_register_id_t, 0)
 The NULL register handle. More...
 
#define AMD_DBGAPI_LANE_NONE   ((amd_dbgapi_lane_id_t) (-1))
 The NULL lane handle. More...
 
#define AMD_DBGAPI_ADDRESS_CLASS_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_address_class_id_t, 0)
 The NULL address class handle. More...
 
#define AMD_DBGAPI_ADDRESS_SPACE_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_address_space_id_t, 0)
 The NULL address space handle. More...
 
#define AMD_DBGAPI_ADDRESS_SPACE_GLOBAL    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_address_space_id_t, 1)
 The global address space handle. More...
 
#define AMD_DBGAPI_EVENT_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_event_id_t, 0)
 The NULL event handle. More...
 
#define AMD_DBGAPI_BREAKPOINT_NONE    AMD_DBGAPI_HANDLE_LITERAL (amd_dbgapi_breakpoint_id_t, 0)
 The NULL breakpoint handle. More...
 

Typedefs

typedef struct amd_dbgapi_callbacks_s amd_dbgapi_callbacks_t
 Forward declaration of callbacks used to specify services that must be provided by the client. More...
 
typedef uint64_t amd_dbgapi_global_address_t
 Integral type used for a global virtual memory address in the inferior process. More...
 
typedef uint64_t amd_dbgapi_size_t
 Integral type used for sizes, including memory allocations, in the inferior. More...
 
typedef pid_t amd_dbgapi_os_process_id_t
 Native operating system process ID. More...
 
typedef int amd_dbgapi_notifier_t
 Type used to notify the client of the library that a process may have pending events. More...
 
typedef uint64_t amd_dbgapi_os_agent_id_t
 Native operating system agent ID. More...
 
typedef uint64_t amd_dbgapi_os_queue_id_t
 Native operating system queue ID. More...
 
typedef uint64_t amd_dbgapi_os_queue_packet_id_t
 Native operating system queue packet ID. More...
 
typedef struct amd_dbgapi_symbolizer_id_s * amd_dbgapi_symbolizer_id_t
 Opaque client symbolizer handle. More...
 
typedef struct amd_dbgapi_client_process_s * amd_dbgapi_client_process_id_t
 Opaque client process handle. More...
 
typedef uint32_t amd_dbgapi_lane_id_t
 A wave lane handle. More...
 
typedef uint64_t amd_dbgapi_segment_address_t
 Each address space has its own linear address to access it termed a segment address. More...
 
typedef struct amd_dbgapi_client_thread_s * amd_dbgapi_client_thread_id_t
 Opaque client thread handle. More...
 

Enumerations

enum  amd_dbgapi_changed_t { AMD_DBGAPI_CHANGED_NO = 0 , AMD_DBGAPI_CHANGED_YES = 1 }
 Indication of if a value has changed. More...
 
enum  amd_dbgapi_os_queue_type_t {
  AMD_DBGAPI_OS_QUEUE_TYPE_UNKNOWN = 0 , AMD_DBGAPI_OS_QUEUE_TYPE_HSA_AQL = 1 , AMD_DBGAPI_OS_QUEUE_TYPE_AMD_PM4 = 257 , AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA = 513 ,
  AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA_XGMI = 514
}
 Native operating system queue type. More...
 
enum  amd_dbgapi_status_t {
  AMD_DBGAPI_STATUS_SUCCESS = 0 , AMD_DBGAPI_STATUS_ERROR = -1 , AMD_DBGAPI_STATUS_FATAL = -2 , AMD_DBGAPI_STATUS_ERROR_NOT_IMPLEMENTED = -3 ,
  AMD_DBGAPI_STATUS_ERROR_NOT_AVAILABLE = -4 , AMD_DBGAPI_STATUS_ERROR_NOT_SUPPORTED = -5 , AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT = -6 , AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT_COMPATIBILITY = -7 ,
  AMD_DBGAPI_STATUS_ERROR_ALREADY_INITIALIZED = -8 , AMD_DBGAPI_STATUS_ERROR_NOT_INITIALIZED = -9 , AMD_DBGAPI_STATUS_ERROR_RESTRICTION = -10 , AMD_DBGAPI_STATUS_ERROR_ALREADY_ATTACHED = -11 ,
  AMD_DBGAPI_STATUS_ERROR_INVALID_ARCHITECTURE_ID = -12 , AMD_DBGAPI_STATUS_ERROR_ILLEGAL_INSTRUCTION = -13 , AMD_DBGAPI_STATUS_ERROR_INVALID_CODE_OBJECT_ID = -14 , AMD_DBGAPI_STATUS_ERROR_INVALID_ELF_AMDGPU_MACHINE = -15 ,
  AMD_DBGAPI_STATUS_ERROR_INVALID_PROCESS_ID = -16 , AMD_DBGAPI_STATUS_ERROR_PROCESS_EXITED = -17 , AMD_DBGAPI_STATUS_ERROR_INVALID_AGENT_ID = -18 , AMD_DBGAPI_STATUS_ERROR_INVALID_QUEUE_ID = -19 ,
  AMD_DBGAPI_STATUS_ERROR_INVALID_DISPATCH_ID = -20 , AMD_DBGAPI_STATUS_ERROR_INVALID_WAVE_ID = -21 , AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_STOPPED = -22 , AMD_DBGAPI_STATUS_ERROR_WAVE_STOPPED = -23 ,
  AMD_DBGAPI_STATUS_ERROR_WAVE_OUTSTANDING_STOP = -24 , AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_RESUMABLE = -25 , AMD_DBGAPI_STATUS_ERROR_INVALID_DISPLACED_STEPPING_ID = -26 , AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_BUFFER_NOT_AVAILABLE = -27 ,
  AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_ACTIVE = -28 , AMD_DBGAPI_STATUS_ERROR_RESUME_DISPLACED_STEPPING = -29 , AMD_DBGAPI_STATUS_ERROR_INVALID_WATCHPOINT_ID = -30 , AMD_DBGAPI_STATUS_ERROR_NO_WATCHPOINT_AVAILABLE = -31 ,
  AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_CLASS_ID = -32 , AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_ID = -33 , AMD_DBGAPI_STATUS_ERROR_INVALID_LANE_ID = -34 , AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_CLASS_ID = -35 ,
  AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_SPACE_ID = -36 , AMD_DBGAPI_STATUS_ERROR_MEMORY_ACCESS = -37 , AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_SPACE_CONVERSION = -38 , AMD_DBGAPI_STATUS_ERROR_INVALID_EVENT_ID = -39 ,
  AMD_DBGAPI_STATUS_ERROR_INVALID_BREAKPOINT_ID = -40 , AMD_DBGAPI_STATUS_ERROR_CLIENT_CALLBACK = -41 , AMD_DBGAPI_STATUS_ERROR_INVALID_CLIENT_PROCESS_ID = -42 , AMD_DBGAPI_STATUS_ERROR_SYMBOL_NOT_FOUND = -43 ,
  AMD_DBGAPI_STATUS_ERROR_REGISTER_NOT_AVAILABLE = -44 , AMD_DBGAPI_STATUS_ERROR_INVALID_WORKGROUP_ID = -45 , AMD_DBGAPI_STATUS_ERROR_INCOMPATIBLE_PROCESS_STATE = -46 , AMD_DBGAPI_STATUS_ERROR_PROCESS_FROZEN = -47 ,
  AMD_DBGAPI_STATUS_ERROR_PROCESS_ALREADY_FROZEN = -48 , AMD_DBGAPI_STATUS_ERROR_PROCESS_NOT_FROZEN = -49
}
 AMD debugger API status codes. More...
 
enum  amd_dbgapi_architecture_info_t {
  AMD_DBGAPI_ARCHITECTURE_INFO_NAME = 1 , AMD_DBGAPI_ARCHITECTURE_INFO_ELF_AMDGPU_MACHINE = 2 , AMD_DBGAPI_ARCHITECTURE_INFO_LARGEST_INSTRUCTION_SIZE = 3 , AMD_DBGAPI_ARCHITECTURE_INFO_MINIMUM_INSTRUCTION_ALIGNMENT = 4 ,
  AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_SIZE = 5 , AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION = 6 , AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_PC_ADJUST = 7 , AMD_DBGAPI_ARCHITECTURE_INFO_PC_REGISTER = 8
}
 Architecture queries that are supported by amd_dbgapi_architecture_get_info. More...
 
enum  amd_dbgapi_instruction_kind_t {
  AMD_DBGAPI_INSTRUCTION_KIND_UNKNOWN = 0 , AMD_DBGAPI_INSTRUCTION_KIND_SEQUENTIAL = 1 , AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH = 2 , AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH_CONDITIONAL = 3 ,
  AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_BRANCH_REGISTER_PAIR = 4 , AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_BRANCH_CONDITIONAL_REGISTER_PAIR = 5 , AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_CALL_REGISTER_PAIR = 6 , AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_CALL_REGISTER_PAIRS = 7 ,
  AMD_DBGAPI_INSTRUCTION_KIND_TERMINATE = 8 , AMD_DBGAPI_INSTRUCTION_KIND_TRAP = 9 , AMD_DBGAPI_INSTRUCTION_KIND_HALT = 10 , AMD_DBGAPI_INSTRUCTION_KIND_BARRIER = 11 ,
  AMD_DBGAPI_INSTRUCTION_KIND_SLEEP = 12 , AMD_DBGAPI_INSTRUCTION_KIND_SPECIAL = 13
}
 The kinds of instruction classifications. More...
 
enum  amd_dbgapi_instruction_properties_t { AMD_DBGAPI_INSTRUCTION_PROPERTY_NONE = 0 }
 A bit mask of the properties of an instruction. More...
 
enum  amd_dbgapi_endianness_t { AMD_DBGAPI_ENDIAN_BIG = 0 , AMD_DBGAPI_ENDIAN_LITTLE = 1 }
 Byte endianness encoding. More...
 
enum  amd_dbgapi_process_info_t {
  AMD_DBGAPI_PROCESS_INFO_NOTIFIER = 1 , AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_COUNT = 2 , AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_SHARE = 3 , AMD_DBGAPI_PROCESS_INFO_PRECISE_MEMORY_SUPPORTED = 4 ,
  AMD_DBGAPI_PROCESS_INFO_PRECISE_ALU_EXCEPTIONS_SUPPORTED = 5 , AMD_DBGAPI_PROCESS_INFO_OS_ID = 6 , AMD_DBGAPI_PROCESS_INFO_CORE_STATE = 7
}
 Process queries that are supported by amd_dbgapi_process_get_info. More...
 
enum  amd_dbgapi_progress_t { AMD_DBGAPI_PROGRESS_NORMAL = 0 , AMD_DBGAPI_PROGRESS_NO_FORWARD = 1 }
 The kinds of progress supported by the library. More...
 
enum  amd_dbgapi_wave_creation_t { AMD_DBGAPI_WAVE_CREATION_NORMAL = 0 , AMD_DBGAPI_WAVE_CREATION_STOP = 1 }
 The kinds of wave creation supported by the hardware. More...
 
enum  amd_dbgapi_code_object_info_t { AMD_DBGAPI_CODE_OBJECT_INFO_PROCESS = 1 , AMD_DBGAPI_CODE_OBJECT_INFO_URI_NAME = 2 , AMD_DBGAPI_CODE_OBJECT_INFO_LOAD_ADDRESS = 3 }
 Code object queries that are supported by amd_dbgapi_code_object_get_info. More...
 
enum  amd_dbgapi_agent_info_t {
  AMD_DBGAPI_AGENT_INFO_PROCESS = 1 , AMD_DBGAPI_AGENT_INFO_NAME = 2 , AMD_DBGAPI_AGENT_INFO_ARCHITECTURE = 3 , AMD_DBGAPI_AGENT_INFO_STATE = 4 ,
  AMD_DBGAPI_AGENT_INFO_PCI_DOMAIN = 5 , AMD_DBGAPI_AGENT_INFO_PCI_SLOT = 6 , AMD_DBGAPI_AGENT_INFO_PCI_VENDOR_ID = 7 , AMD_DBGAPI_AGENT_INFO_PCI_DEVICE_ID = 8 ,
  AMD_DBGAPI_AGENT_INFO_EXECUTION_UNIT_COUNT = 9 , AMD_DBGAPI_AGENT_INFO_MAX_WAVES_PER_EXECUTION_UNIT = 10 , AMD_DBGAPI_AGENT_INFO_OS_ID = 11
}
 Agent queries that are supported by amd_dbgapi_agent_get_info. More...
 
enum  amd_dbgapi_agent_state_t { AMD_DBGAPI_AGENT_STATE_SUPPORTED = 1 , AMD_DBGAPI_AGENT_STATE_NOT_SUPPORTED = 2 }
 Agent state. More...
 
enum  amd_dbgapi_queue_info_t {
  AMD_DBGAPI_QUEUE_INFO_AGENT = 1 , AMD_DBGAPI_QUEUE_INFO_PROCESS = 2 , AMD_DBGAPI_QUEUE_INFO_ARCHITECTURE = 3 , AMD_DBGAPI_QUEUE_INFO_TYPE = 4 ,
  AMD_DBGAPI_QUEUE_INFO_STATE = 5 , AMD_DBGAPI_QUEUE_INFO_ERROR_REASON = 6 , AMD_DBGAPI_QUEUE_INFO_ADDRESS = 7 , AMD_DBGAPI_QUEUE_INFO_SIZE = 8 ,
  AMD_DBGAPI_QUEUE_INFO_OS_ID = 9
}
 Queue queries that are supported by amd_dbgapi_queue_get_info. More...
 
enum  amd_dbgapi_queue_state_t { AMD_DBGAPI_QUEUE_STATE_VALID = 1 , AMD_DBGAPI_QUEUE_STATE_ERROR = 2 }
 Queue state. More...
 
enum  amd_dbgapi_exceptions_t {
  AMD_DBGAPI_EXCEPTION_NONE = 0 , AMD_DBGAPI_EXCEPTION_WAVE_ABORT = (1 << 0) , AMD_DBGAPI_EXCEPTION_WAVE_TRAP = (1 << 1) , AMD_DBGAPI_EXCEPTION_WAVE_MATH_ERROR = (1 << 2) ,
  AMD_DBGAPI_EXCEPTION_WAVE_ILLEGAL_INSTRUCTION = (1 << 3) , AMD_DBGAPI_EXCEPTION_WAVE_MEMORY_VIOLATION = (1 << 4) , AMD_DBGAPI_EXCEPTION_WAVE_ADDRESS_ERROR = (1 << 5) , DEPRECATED = AMD_DBGAPI_EXCEPTION_WAVE_ADDRESS_ERROR ,
  AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_DIM_INVALID = (1 << 16) , AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID = (1 << 17) , AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_CODE_INVALID = (1 << 18) , AMD_DBGAPI_EXCEPTION_PACKET_UNSUPPORTED = (1 << 20) ,
  AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_WORKGROUP_SIZE_INVALID = (1 << 21) , AMD_DBGAPI_EXCEPTION_PACKET_DISPATCH_REGISTER_COUNT_TOO_LARGE = (1 << 22) , AMD_DBGAPI_EXCEPTION_PACKET_VENDOR_UNSUPPORTED = (1 << 23) , AMD_DBGAPI_EXCEPTION_QUEUE_PREEMPTION_ERROR = (1 << 31)
}
 A bit mask of the exceptions that can cause a queue to enter the queue error state. More...
 
enum  amd_dbgapi_dispatch_info_t {
  AMD_DBGAPI_DISPATCH_INFO_QUEUE = 1 , AMD_DBGAPI_DISPATCH_INFO_AGENT = 2 , AMD_DBGAPI_DISPATCH_INFO_PROCESS = 3 , AMD_DBGAPI_DISPATCH_INFO_ARCHITECTURE = 4 ,
  AMD_DBGAPI_DISPATCH_INFO_OS_QUEUE_PACKET_ID = 5 , AMD_DBGAPI_DISPATCH_INFO_BARRIER = 6 , AMD_DBGAPI_DISPATCH_INFO_ACQUIRE_FENCE = 7 , AMD_DBGAPI_DISPATCH_INFO_RELEASE_FENCE = 8 ,
  AMD_DBGAPI_DISPATCH_INFO_GRID_DIMENSIONS = 9 , AMD_DBGAPI_DISPATCH_INFO_WORKGROUP_SIZES = 10 , AMD_DBGAPI_DISPATCH_INFO_GRID_SIZES = 11 , AMD_DBGAPI_DISPATCH_INFO_PRIVATE_SEGMENT_SIZE = 12 ,
  AMD_DBGAPI_DISPATCH_INFO_GROUP_SEGMENT_SIZE = 13 , AMD_DBGAPI_DISPATCH_INFO_KERNEL_ARGUMENT_SEGMENT_ADDRESS = 14 , AMD_DBGAPI_DISPATCH_INFO_KERNEL_DESCRIPTOR_ADDRESS = 15 , AMD_DBGAPI_DISPATCH_INFO_KERNEL_CODE_ENTRY_ADDRESS = 16 ,
  AMD_DBGAPI_DISPATCH_INFO_KERNEL_COMPLETION_ADDRESS = 17
}
 Dispatch queries that are supported by amd_dbgapi_dispatch_get_info. More...
 
enum  amd_dbgapi_dispatch_barrier_t { AMD_DBGAPI_DISPATCH_BARRIER_NONE = 0 , AMD_DBGAPI_DISPATCH_BARRIER_PRESENT = 1 }
 Dispatch barrier. More...
 
enum  amd_dbgapi_dispatch_fence_scope_t { AMD_DBGAPI_DISPATCH_FENCE_SCOPE_NONE = 0 , AMD_DBGAPI_DISPATCH_FENCE_SCOPE_AGENT = 1 , AMD_DBGAPI_DISPATCH_FENCE_SCOPE_SYSTEM = 2 }
 Dispatch memory fence scope. More...
 
enum  amd_dbgapi_workgroup_info_t {
  AMD_DBGAPI_WORKGROUP_INFO_DISPATCH = 1 , AMD_DBGAPI_WORKGROUP_INFO_QUEUE = 2 , AMD_DBGAPI_WORKGROUP_INFO_AGENT = 3 , AMD_DBGAPI_WORKGROUP_INFO_PROCESS = 4 ,
  AMD_DBGAPI_WORKGROUP_INFO_ARCHITECTURE = 5 , AMD_DBGAPI_WORKGROUP_INFO_WORKGROUP_COORD = 6
}
 Workgroup queries that are supported by amd_dbgapi_workgroup_get_info. More...
 
enum  amd_dbgapi_wave_info_t {
  AMD_DBGAPI_WAVE_INFO_STATE = 1 , AMD_DBGAPI_WAVE_INFO_STOP_REASON = 2 , AMD_DBGAPI_WAVE_INFO_WATCHPOINTS = 3 , AMD_DBGAPI_WAVE_INFO_WORKGROUP = 4 ,
  AMD_DBGAPI_WAVE_INFO_DISPATCH = 5 , AMD_DBGAPI_WAVE_INFO_QUEUE = 6 , AMD_DBGAPI_WAVE_INFO_AGENT = 7 , AMD_DBGAPI_WAVE_INFO_PROCESS = 8 ,
  AMD_DBGAPI_WAVE_INFO_ARCHITECTURE = 9 , AMD_DBGAPI_WAVE_INFO_PC = 10 , AMD_DBGAPI_WAVE_INFO_EXEC_MASK = 11 , AMD_DBGAPI_WAVE_INFO_WORKGROUP_COORD = 12 ,
  AMD_DBGAPI_WAVE_INFO_WAVE_NUMBER_IN_WORKGROUP = 13 , AMD_DBGAPI_WAVE_INFO_LANE_COUNT = 14
}
 Wave queries that are supported by amd_dbgapi_wave_get_info. More...
 
enum  amd_dbgapi_wave_state_t { AMD_DBGAPI_WAVE_STATE_RUN = 1 , AMD_DBGAPI_WAVE_STATE_SINGLE_STEP = 2 , AMD_DBGAPI_WAVE_STATE_STOP = 3 }
 The execution state of a wave. More...
 
enum  amd_dbgapi_wave_stop_reasons_t {
  AMD_DBGAPI_WAVE_STOP_REASON_NONE = 0 , AMD_DBGAPI_WAVE_STOP_REASON_BREAKPOINT = (1 << 0) , AMD_DBGAPI_WAVE_STOP_REASON_WATCHPOINT = (1 << 1) , AMD_DBGAPI_WAVE_STOP_REASON_SINGLE_STEP = (1 << 2) ,
  AMD_DBGAPI_WAVE_STOP_REASON_FP_INPUT_DENORMAL = (1 << 3) , AMD_DBGAPI_WAVE_STOP_REASON_FP_DIVIDE_BY_0 = (1 << 4) , AMD_DBGAPI_WAVE_STOP_REASON_FP_OVERFLOW = (1 << 5) , AMD_DBGAPI_WAVE_STOP_REASON_FP_UNDERFLOW = (1 << 6) ,
  AMD_DBGAPI_WAVE_STOP_REASON_FP_INEXACT = (1 << 7) , AMD_DBGAPI_WAVE_STOP_REASON_FP_INVALID_OPERATION = (1 << 8) , AMD_DBGAPI_WAVE_STOP_REASON_INT_DIVIDE_BY_0 = (1 << 9) , AMD_DBGAPI_WAVE_STOP_REASON_DEBUG_TRAP = (1 << 10) ,
  AMD_DBGAPI_WAVE_STOP_REASON_ASSERT_TRAP = (1 << 11) , AMD_DBGAPI_WAVE_STOP_REASON_TRAP = (1 << 12) , AMD_DBGAPI_WAVE_STOP_REASON_MEMORY_VIOLATION = (1 << 13) , AMD_DBGAPI_WAVE_STOP_REASON_ADDRESS_ERROR = (1 << 14) ,
  DEPRECATED = AMD_DBGAPI_EXCEPTION_WAVE_ADDRESS_ERROR , AMD_DBGAPI_WAVE_STOP_REASON_ILLEGAL_INSTRUCTION = (1 << 15) , AMD_DBGAPI_WAVE_STOP_REASON_ECC_ERROR = (1 << 16) , AMD_DBGAPI_WAVE_STOP_REASON_FATAL_HALT = (1 << 17)
}
 A bit mask of the reasons that a wave stopped. More...
 
enum  amd_dbgapi_resume_mode_t { AMD_DBGAPI_RESUME_MODE_NORMAL = 0 , AMD_DBGAPI_RESUME_MODE_SINGLE_STEP = 1 }
 The mode in which to resuming the execution of a wave. More...
 
enum  amd_dbgapi_displaced_stepping_info_t { AMD_DBGAPI_DISPLACED_STEPPING_INFO_PROCESS = 1 }
 Displaced stepping queries that are supported by amd_dbgapi_displaced_stepping_id_t. More...
 
enum  amd_dbgapi_watchpoint_info_t { AMD_DBGAPI_WATCHPOINT_INFO_PROCESS = 1 , AMD_DBGAPI_WATCHPOINT_INFO_ADDRESS = 2 , AMD_DBGAPI_WATCHPOINT_INFO_SIZE = 3 }
 Watchpoint queries that are supported by amd_dbgapi_watchpoint_get_info. More...
 
enum  amd_dbgapi_watchpoint_share_kind_t { AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSUPPORTED = 0 , AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSHARED = 1 , AMD_DBGAPI_WATCHPOINT_SHARE_KIND_SHARED = 2 }
 The way watchpoints are shared between processes. More...
 
enum  amd_dbgapi_watchpoint_kind_t { AMD_DBGAPI_WATCHPOINT_KIND_LOAD = 1 , AMD_DBGAPI_WATCHPOINT_KIND_STORE_AND_RMW = 2 , AMD_DBGAPI_WATCHPOINT_KIND_RMW = 3 , AMD_DBGAPI_WATCHPOINT_KIND_ALL = 4 }
 Watchpoint memory access kinds. More...
 
enum  amd_dbgapi_register_class_info_t { AMD_DBGAPI_REGISTER_CLASS_INFO_ARCHITECTURE = 1 , AMD_DBGAPI_REGISTER_CLASS_INFO_NAME = 2 }
 Register class queries that are supported by amd_dbgapi_architecture_register_class_get_info. More...
 
enum  amd_dbgapi_register_properties_t { AMD_DBGAPI_REGISTER_PROPERTY_NONE = 0 , AMD_DBGAPI_REGISTER_PROPERTY_READONLY_BITS = (1 << 0) , AMD_DBGAPI_REGISTER_PROPERTY_VOLATILE = (1 << 1) , AMD_DBGAPI_REGISTER_PROPERTY_INVALIDATE_VOLATILE = (1 << 2) }
 A bit mask on register properties. More...
 
enum  amd_dbgapi_register_info_t {
  AMD_DBGAPI_REGISTER_INFO_ARCHITECTURE = 1 , AMD_DBGAPI_REGISTER_INFO_NAME = 2 , AMD_DBGAPI_REGISTER_INFO_SIZE = 3 , AMD_DBGAPI_REGISTER_INFO_TYPE = 4 ,
  AMD_DBGAPI_REGISTER_INFO_DWARF = 5 , AMD_DBGAPI_REGISTER_INFO_PROPERTIES = 6
}
 Register queries that are supported by amd_dbgapi_register_get_info. More...
 
enum  amd_dbgapi_register_exists_t { AMD_DBGAPI_REGISTER_ABSENT = 0 , AMD_DBGAPI_REGISTER_PRESENT = 1 }
 Indication of if a wave has a register. More...
 
enum  amd_dbgapi_register_class_state_t { AMD_DBGAPI_REGISTER_CLASS_STATE_NOT_MEMBER = 0 , AMD_DBGAPI_REGISTER_CLASS_STATE_MEMBER = 1 }
 Indication of whether a register is a member of a register class. More...
 
enum  amd_dbgapi_address_class_info_t { AMD_DBGAPI_ADDRESS_CLASS_INFO_NAME = 1 , AMD_DBGAPI_ADDRESS_CLASS_INFO_ADDRESS_SPACE = 2 , AMD_DBGAPI_ADDRESS_CLASS_INFO_DWARF = 3 }
 Source language address class queries that are supported by amd_dbgapi_address_class_get_info. More...
 
enum  amd_dbgapi_address_space_access_t { AMD_DBGAPI_ADDRESS_SPACE_ACCESS_ALL = 1 , AMD_DBGAPI_ADDRESS_SPACE_ACCESS_PROGRAM_CONSTANT = 2 , AMD_DBGAPI_ADDRESS_SPACE_ACCESS_DISPATCH_CONSTANT = 3 }
 Indication of how the address space is accessed. More...
 
enum  amd_dbgapi_address_space_info_t {
  AMD_DBGAPI_ADDRESS_SPACE_INFO_NAME = 1 , AMD_DBGAPI_ADDRESS_SPACE_INFO_ADDRESS_SIZE = 2 , AMD_DBGAPI_ADDRESS_SPACE_INFO_NULL_ADDRESS = 3 , AMD_DBGAPI_ADDRESS_SPACE_INFO_ACCESS = 4 ,
  AMD_DBGAPI_ADDRESS_SPACE_INFO_DWARF = 5
}
 Address space queries that are supported by amd_dbgapi_address_space_get_info. More...
 
enum  amd_dbgapi_segment_address_dependency_t {
  AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_NONE = 0 , AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_LANE = 1 , AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_WAVE = 2 , AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_WORKGROUP = 3 ,
  AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_AGENT = 4 , AMD_DBGAPI_SEGMENT_ADDRESS_DEPENDENCE_PROCESS = 5
}
 The dependency when reading or writing a specific segment address of an address space using the amd_dbgapi_read_memory and amd_dbgapi_write_memory operations. More...
 
enum  amd_dbgapi_address_class_state_t { AMD_DBGAPI_ADDRESS_CLASS_STATE_NOT_MEMBER = 0 , AMD_DBGAPI_ADDRESS_CLASS_STATE_MEMBER = 1 }
 Indication of whether a segment address in an address space is a member of an source language address class. More...
 
enum  amd_dbgapi_memory_precision_t { AMD_DBGAPI_MEMORY_PRECISION_NONE = 0 , AMD_DBGAPI_MEMORY_PRECISION_PRECISE = 1 }
 Memory access precision. More...
 
enum  amd_dbgapi_alu_exceptions_precision_t { AMD_DBGAPI_ALU_EXCEPTIONS_PRECISION_NONE = 0 , AMD_DBGAPI_ALU_EXCEPTIONS_PRECISION_PRECISE = 1 }
 ALU exceptions reporting precision. More...
 
enum  amd_dbgapi_event_kind_t {
  AMD_DBGAPI_EVENT_KIND_NONE = 0 , AMD_DBGAPI_EVENT_KIND_WAVE_STOP = 1 , AMD_DBGAPI_EVENT_KIND_WAVE_COMMAND_TERMINATED = 2 , AMD_DBGAPI_EVENT_KIND_CODE_OBJECT_LIST_UPDATED = 3 ,
  AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME = 4 , AMD_DBGAPI_EVENT_KIND_RUNTIME = 5 , AMD_DBGAPI_EVENT_KIND_QUEUE_ERROR = 6
}
 The event kinds. More...
 
enum  amd_dbgapi_runtime_state_t { AMD_DBGAPI_RUNTIME_STATE_LOADED_SUCCESS = 1 , AMD_DBGAPI_RUNTIME_STATE_UNLOADED = 2 , AMD_DBGAPI_RUNTIME_STATE_LOADED_ERROR_RESTRICTION = 3 }
 Inferior's runtime state. More...
 
enum  amd_dbgapi_event_info_t {
  AMD_DBGAPI_EVENT_INFO_PROCESS = 1 , AMD_DBGAPI_EVENT_INFO_KIND = 2 , AMD_DBGAPI_EVENT_INFO_WAVE = 3 , AMD_DBGAPI_EVENT_INFO_BREAKPOINT = 4 ,
  AMD_DBGAPI_EVENT_INFO_CLIENT_THREAD = 5 , AMD_DBGAPI_EVENT_INFO_RUNTIME_STATE = 6 , AMD_DBGAPI_EVENT_INFO_QUEUE = 7
}
 Event queries that are supported by amd_dbgapi_event_get_info. More...
 
enum  amd_dbgapi_log_level_t {
  AMD_DBGAPI_LOG_LEVEL_NONE = 0 , AMD_DBGAPI_LOG_LEVEL_FATAL_ERROR = 1 , AMD_DBGAPI_LOG_LEVEL_WARNING = 2 , AMD_DBGAPI_LOG_LEVEL_INFO = 3 ,
  AMD_DBGAPI_LOG_LEVEL_TRACE = 4 , AMD_DBGAPI_LOG_LEVEL_VERBOSE = 5
}
 The logging levels supported. More...
 
enum  amd_dbgapi_breakpoint_info_t { AMD_DBGAPI_BREAKPOINT_INFO_PROCESS = 1 }
 Breakpoint queries that are supported by amd_dbgapi_breakpoint_get_info. More...
 
enum  amd_dbgapi_breakpoint_action_t { AMD_DBGAPI_BREAKPOINT_ACTION_RESUME = 1 , AMD_DBGAPI_BREAKPOINT_ACTION_HALT = 2 }
 The action to perform after reporting a breakpoint has been hit. More...
 
enum  amd_dbgapi_client_process_info_t { AMD_DBGAPI_CLIENT_PROCESS_INFO_OS_PID = 1 , AMD_DBGAPI_CLIENT_PROCESS_INFO_CORE_STATE = 2 }
 Client queries that are supported by the client_process_get_info callback. More...
 

Functions

amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_get_status_string (amd_dbgapi_status_t status, const char **status_string) AMD_DBGAPI_VERSION_0_54
 Query a textual description of a status code. More...
 
void AMD_DBGAPI amd_dbgapi_get_version (uint32_t *major, uint32_t *minor, uint32_t *patch) AMD_DBGAPI_VERSION_0_54
 Query the version of the installed library. More...
 
const char AMD_DBGAPIamd_dbgapi_get_build_name (void) AMD_DBGAPI_VERSION_0_54
 Query the installed library build name. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_initialize (amd_dbgapi_callbacks_t *callbacks) AMD_DBGAPI_VERSION_0_76
 Initialize the library. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_finalize (void) AMD_DBGAPI_VERSION_0_54
 Finalize the library. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_get_info (amd_dbgapi_architecture_id_t architecture_id, amd_dbgapi_architecture_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
 Query information about an architecture. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_get_architecture (uint32_t elf_amdgpu_machine, amd_dbgapi_architecture_id_t *architecture_id) AMD_DBGAPI_VERSION_0_54
 Get an architecture from the AMD GPU ELF EF_AMDGPU_MACH value corresponding to the architecture. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_disassemble_instruction (amd_dbgapi_architecture_id_t architecture_id, amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size, const void *memory, char **instruction_text, amd_dbgapi_symbolizer_id_t symbolizer_id, amd_dbgapi_status_t(*symbolizer)(amd_dbgapi_symbolizer_id_t symbolizer_id, amd_dbgapi_global_address_t address, char **symbol_text)) AMD_DBGAPI_VERSION_0_54
 Disassemble a single instruction. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_classify_instruction (amd_dbgapi_architecture_id_t architecture_id, amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size, const void *memory, amd_dbgapi_instruction_kind_t *instruction_kind, amd_dbgapi_instruction_properties_t *instruction_properties, void **instruction_information) AMD_DBGAPI_VERSION_0_58
 Classify a single instruction. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_get_info (amd_dbgapi_process_id_t process_id, amd_dbgapi_process_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_77
 Query information about a process. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_attach (amd_dbgapi_client_process_id_t client_process_id, amd_dbgapi_process_id_t *process_id) AMD_DBGAPI_VERSION_0_56
 Attach to a process in order to provide debug control of the AMD GPUs it uses. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_detach (amd_dbgapi_process_id_t process_id) AMD_DBGAPI_VERSION_0_54
 Detach from a process and no longer have debug control of the AMD GPU devices it uses. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_set_progress (amd_dbgapi_process_id_t process_id, amd_dbgapi_progress_t progress) AMD_DBGAPI_VERSION_0_76
 Set the progress required for a process. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_set_wave_creation (amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_creation_t creation) AMD_DBGAPI_VERSION_0_76
 Set the wave creation mode for a process. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_freeze (amd_dbgapi_process_id_t process_id) AMD_DBGAPI_VERSION_0_76
 Freeze the process identified by process_id. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_unfreeze (amd_dbgapi_process_id_t process_id) AMD_DBGAPI_VERSION_0_76
 Unfreeze the process identified by process_id. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_code_object_get_info (amd_dbgapi_code_object_id_t code_object_id, amd_dbgapi_code_object_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
 Query information about a code object. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_code_object_list (amd_dbgapi_process_id_t process_id, size_t *code_object_count, amd_dbgapi_code_object_id_t **code_objects, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54
 Return the list of loaded code objects. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_agent_get_info (amd_dbgapi_agent_id_t agent_id, amd_dbgapi_agent_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_67
 Query information about an agent. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_agent_list (amd_dbgapi_process_id_t process_id, size_t *agent_count, amd_dbgapi_agent_id_t **agents, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54
 Return the list of agents. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_queue_get_info (amd_dbgapi_queue_id_t queue_id, amd_dbgapi_queue_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_68
 Query information about a queue. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_queue_list (amd_dbgapi_process_id_t process_id, size_t *queue_count, amd_dbgapi_queue_id_t **queues, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54
 Return the list of queues. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_queue_packet_list (amd_dbgapi_queue_id_t queue_id, amd_dbgapi_os_queue_packet_id_t *read_packet_id, amd_dbgapi_os_queue_packet_id_t *write_packet_id, size_t *packets_byte_size, void **packets_bytes) AMD_DBGAPI_VERSION_0_54
 Return the packets for a queue. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dispatch_get_info (amd_dbgapi_dispatch_id_t dispatch_id, amd_dbgapi_dispatch_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
 Query information about a dispatch. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_dispatch_list (amd_dbgapi_process_id_t process_id, size_t *dispatch_count, amd_dbgapi_dispatch_id_t **dispatches, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54
 Return the list of dispatches. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_workgroup_get_info (amd_dbgapi_workgroup_id_t workgroup_id, amd_dbgapi_workgroup_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_64
 Query information about a workgroup. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_workgroup_list (amd_dbgapi_process_id_t process_id, size_t *workgroup_count, amd_dbgapi_workgroup_id_t **workgroups, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_64
 Return the list of existing workgroups. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_get_info (amd_dbgapi_wave_id_t wave_id, amd_dbgapi_wave_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_64
 Query information about a wave. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_wave_list (amd_dbgapi_process_id_t process_id, size_t *wave_count, amd_dbgapi_wave_id_t **waves, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_54
 Return the list of existing waves. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_stop (amd_dbgapi_wave_id_t wave_id) AMD_DBGAPI_VERSION_0_76
 Request a wave to stop executing. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_resume (amd_dbgapi_wave_id_t wave_id, amd_dbgapi_resume_mode_t resume_mode, amd_dbgapi_exceptions_t exceptions) AMD_DBGAPI_VERSION_0_76
 Resume execution of a stopped wave. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_get_info (amd_dbgapi_displaced_stepping_id_t displaced_stepping_id, amd_dbgapi_displaced_stepping_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
 Query information about a displaced stepping buffer. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_start (amd_dbgapi_wave_id_t wave_id, const void *saved_instruction_bytes, amd_dbgapi_displaced_stepping_id_t *displaced_stepping) AMD_DBGAPI_VERSION_0_76
 Associate an active displaced stepping buffer with a wave. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_complete (amd_dbgapi_wave_id_t wave_id, amd_dbgapi_displaced_stepping_id_t displaced_stepping) AMD_DBGAPI_VERSION_0_76
 Complete a displaced stepping buffer for a wave. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_watchpoint_get_info (amd_dbgapi_watchpoint_id_t watchpoint_id, amd_dbgapi_watchpoint_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
 Query information about a watchpoint. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_set_watchpoint (amd_dbgapi_process_id_t process_id, amd_dbgapi_global_address_t address, amd_dbgapi_size_t size, amd_dbgapi_watchpoint_kind_t kind, amd_dbgapi_watchpoint_id_t *watchpoint_id) AMD_DBGAPI_VERSION_0_76
 Set a hardware data watchpoint. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_remove_watchpoint (amd_dbgapi_watchpoint_id_t watchpoint_id) AMD_DBGAPI_VERSION_0_76
 Remove a hardware data watchpoint previously set by amd_dbgapi_set_watchpoint. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_class_get_info (amd_dbgapi_register_class_id_t register_class_id, amd_dbgapi_register_class_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
 Query information about a register class of an architecture. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_class_list (amd_dbgapi_architecture_id_t architecture_id, size_t *register_class_count, amd_dbgapi_register_class_id_t **register_classes) AMD_DBGAPI_VERSION_0_54
 Report the list of register classes supported by the architecture. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_register_get_info (amd_dbgapi_register_id_t register_id, amd_dbgapi_register_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_70
 Query information about a register. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_register_exists (amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_register_exists_t *exists) AMD_DBGAPI_VERSION_0_54
 Query if a register exists for a wave. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_list (amd_dbgapi_architecture_id_t architecture_id, size_t *register_count, amd_dbgapi_register_id_t **registers) AMD_DBGAPI_VERSION_0_54
 Report the list of registers supported by the architecture. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_register_list (amd_dbgapi_wave_id_t wave_id, size_t *register_count, amd_dbgapi_register_id_t **registers) AMD_DBGAPI_VERSION_0_54
 Report the list of registers supported by a wave. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dwarf_register_to_register (amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_register, amd_dbgapi_register_id_t *register_id) AMD_DBGAPI_VERSION_0_54
 Return a register handle from an AMD GPU DWARF register number for an architecture. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_register_is_in_register_class (amd_dbgapi_register_class_id_t register_class_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_register_class_state_t *register_class_state) AMD_DBGAPI_VERSION_0_54
 Determine if a register is a member of a register class. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_read_register (amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t offset, amd_dbgapi_size_t value_size, void *value) AMD_DBGAPI_VERSION_0_62
 Read a register. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_write_register (amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t offset, amd_dbgapi_size_t value_size, const void *value) AMD_DBGAPI_VERSION_0_76
 Write a register. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_prefetch_register (amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t register_count) AMD_DBGAPI_VERSION_0_62
 Prefetch register values. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_class_get_info (amd_dbgapi_address_class_id_t address_class_id, amd_dbgapi_address_class_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_62
 Query information about a source language address class of an architecture. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_address_class_list (amd_dbgapi_architecture_id_t architecture_id, size_t *address_class_count, amd_dbgapi_address_class_id_t **address_classes) AMD_DBGAPI_VERSION_0_54
 Report the list of source language address classes supported by the architecture. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dwarf_address_class_to_address_class (amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_class, amd_dbgapi_address_class_id_t *address_class_id) AMD_DBGAPI_VERSION_0_54
 Return the architecture source language address class from a DWARF address class number for an architecture. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_space_get_info (amd_dbgapi_address_space_id_t address_space_id, amd_dbgapi_address_space_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_62
 Query information about an address space. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_address_space_list (amd_dbgapi_architecture_id_t architecture_id, size_t *address_space_count, amd_dbgapi_address_space_id_t **address_spaces) AMD_DBGAPI_VERSION_0_54
 Report the list of address spaces supported by the architecture. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dwarf_address_space_to_address_space (amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_space, amd_dbgapi_address_space_id_t *address_space_id) AMD_DBGAPI_VERSION_0_54
 Return the address space from an AMD GPU DWARF address space number for an architecture. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_convert_address_space (amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id, amd_dbgapi_address_space_id_t source_address_space_id, amd_dbgapi_segment_address_t source_segment_address, amd_dbgapi_address_space_id_t destination_address_space_id, amd_dbgapi_segment_address_t *destination_segment_address, amd_dbgapi_size_t *destination_contiguous_bytes) AMD_DBGAPI_VERSION_0_62
 Convert a source segment address in the source address space into a destination segment address in the destination address space. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_dependency (amd_dbgapi_address_space_id_t address_space_id, amd_dbgapi_segment_address_t segment_address, amd_dbgapi_segment_address_dependency_t *segment_address_dependency) AMD_DBGAPI_VERSION_0_64
 Determine the dependency of a segment address value in a particular address space. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_is_in_address_class (amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id, amd_dbgapi_address_space_id_t address_space_id, amd_dbgapi_segment_address_t segment_address, amd_dbgapi_address_class_id_t address_class_id, amd_dbgapi_address_class_state_t *address_class_state) AMD_DBGAPI_VERSION_0_54
 Determine if a segment address in an address space is a member of a source language address class. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_read_memory (amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id, amd_dbgapi_address_space_id_t address_space_id, amd_dbgapi_segment_address_t segment_address, amd_dbgapi_size_t *value_size, void *value) AMD_DBGAPI_VERSION_0_54
 Read memory. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_write_memory (amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id, amd_dbgapi_address_space_id_t address_space_id, amd_dbgapi_segment_address_t segment_address, amd_dbgapi_size_t *value_size, const void *value) AMD_DBGAPI_VERSION_0_76
 Write memory. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_set_memory_precision (amd_dbgapi_process_id_t process_id, amd_dbgapi_memory_precision_t memory_precision) AMD_DBGAPI_VERSION_0_54
 Control precision of memory access reporting. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_set_alu_exceptions_precision (amd_dbgapi_process_id_t process_id, amd_dbgapi_alu_exceptions_precision_t alu_exceptions_precision) AMD_DBGAPI_VERSION_0_77
 Control precision of ALU exceptions reporting. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_next_pending_event (amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t *event_id, amd_dbgapi_event_kind_t *kind) AMD_DBGAPI_VERSION_0_54
 Obtain the next pending event. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_event_get_info (amd_dbgapi_event_id_t event_id, amd_dbgapi_event_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
 Query information about an event. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_event_processed (amd_dbgapi_event_id_t event_id) AMD_DBGAPI_VERSION_0_54
 Report that an event has been processed. More...
 
void AMD_DBGAPI amd_dbgapi_set_log_level (amd_dbgapi_log_level_t level) AMD_DBGAPI_VERSION_0_54
 Set the logging level. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_breakpoint_get_info (amd_dbgapi_breakpoint_id_t breakpoint_id, amd_dbgapi_breakpoint_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_54
 Query information about a breakpoint. More...
 
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_report_breakpoint_hit (amd_dbgapi_breakpoint_id_t breakpoint_id, amd_dbgapi_client_thread_id_t client_thread_id, amd_dbgapi_breakpoint_action_t *breakpoint_action) AMD_DBGAPI_VERSION_0_54
 Report that a breakpoint inserted by the amd_dbgapi_callbacks_s::insert_breakpoint callback has been hit. More...
 

Detailed Description

AMD debugger API interface.

Macro Definition Documentation

◆ AMD_DBGAPI

#define AMD_DBGAPI   AMD_DBGAPI_IMPORT

◆ AMD_DBGAPI_CALL

#define AMD_DBGAPI_CALL

◆ AMD_DBGAPI_EXPORT

#define AMD_DBGAPI_EXPORT   AMD_DBGAPI_EXPORT_DECORATOR AMD_DBGAPI_CALL

◆ AMD_DBGAPI_HANDLE_LITERAL

#define AMD_DBGAPI_HANDLE_LITERAL (   type,
  value 
)    {value}

◆ AMD_DBGAPI_IMPORT

#define AMD_DBGAPI_IMPORT   AMD_DBGAPI_IMPORT_DECORATOR AMD_DBGAPI_CALL

◆ DEPRECATED

Old deprecated name kept for backward compatibility.

Will be removed in a future release.