AMD_DBGAPI  0.30.0
amd-dbgapi.h
Go to the documentation of this file.
1 /* Copyright (c) 2019-2020 Advanced Micro Devices, Inc.
2 
3  Permission is hereby granted, free of charge, to any person obtaining a copy
4  of this software and associated documentation files (the "Software"), to deal
5  in the Software without restriction, including without limitation the rights
6  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7  copies of the Software, and to permit persons to whom the Software is
8  furnished to do so, subject to the following conditions:
9 
10  The above copyright notice and this permission notice shall be included in
11  all copies or substantial portions of the Software.
12 
13  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19  THE SOFTWARE. */
20 
398 #ifndef _AMD_DBGAPI_H
399 #define _AMD_DBGAPI_H 1
400 
401 /* Placeholder for calling convention and import/export macros */
402 #if !defined(AMD_DBGAPI_CALL)
403 #define AMD_DBGAPI_CALL
404 #endif /* !defined (AMD_DBGAPI_CALL) */
405 
406 #if !defined(AMD_DBGAPI_EXPORT_DECORATOR)
407 #if defined(__GNUC__)
408 #define AMD_DBGAPI_EXPORT_DECORATOR __attribute__ ((visibility ("default")))
409 #elif defined(_MSC_VER)
410 #define AMD_DBGAPI_EXPORT_DECORATOR __declspec(dllexport)
411 #endif /* defined (_MSC_VER) */
412 #endif /* !defined (AMD_DBGAPI_EXPORT_DECORATOR) */
413 
414 #if !defined(AMD_DBGAPI_IMPORT_DECORATOR)
415 #if defined(__GNUC__)
416 #define AMD_DBGAPI_IMPORT_DECORATOR
417 #elif defined(_MSC_VER)
418 #define AMD_DBGAPI_IMPORT_DECORATOR __declspec(dllimport)
419 #endif /* defined (_MSC_VER) */
420 #endif /* !defined (AMD_DBGAPI_IMPORT_DECORATOR) */
421 
422 #define AMD_DBGAPI_EXPORT AMD_DBGAPI_EXPORT_DECORATOR AMD_DBGAPI_CALL
423 #define AMD_DBGAPI_IMPORT AMD_DBGAPI_IMPORT_DECORATOR AMD_DBGAPI_CALL
424 
425 #if !defined(AMD_DBGAPI)
426 #if defined(AMD_DBGAPI_EXPORTS)
427 #define AMD_DBGAPI AMD_DBGAPI_EXPORT
428 #else /* !defined (AMD_DBGAPI_EXPORTS) */
429 #define AMD_DBGAPI AMD_DBGAPI_IMPORT
430 #endif /* !defined (AMD_DBGAPI_EXPORTS) */
431 #endif /* !defined (AMD_DBGAPI) */
432 
433 #if defined(__cplusplus)
434 extern "C" {
435 #endif /* defined (__cplusplus) */
436 
437 #if defined(__linux__)
438 #include <sys/types.h>
439 #endif /* __linux__ */
440 
441 #include <stddef.h>
442 #include <stdint.h>
443 
463 #define AMD_DBGAPI_VERSION_0_24
464 
469 #define AMD_DBGAPI_VERSION_0_30
470 
478 
506 
510 typedef uint64_t amd_dbgapi_size_t;
511 
515 typedef enum
516 {
526 
534 #if defined(__linux__)
535 typedef pid_t amd_dbgapi_os_pid_t;
536 #endif /* __linux__ */
537 
561 #if defined(__linux__)
563 #endif /* __linux__ */
564 
577 typedef enum
578 {
790 
808  amd_dbgapi_status_t status,
809  const char **status_string) AMD_DBGAPI_VERSION_0_24;
810 
834 #define AMD_DBGAPI_VERSION_MAJOR 0
835 
840 #define AMD_DBGAPI_VERSION_MINOR 30
841 
856  uint32_t *major, uint32_t *minor, uint32_t *patch) AMD_DBGAPI_VERSION_0_24;
857 
866 const char AMD_DBGAPI *
867 amd_dbgapi_get_build_name (void) AMD_DBGAPI_VERSION_0_24;
868 
916 
942  AMD_DBGAPI_VERSION_0_24;
943 
964 typedef struct
965 {
966  uint64_t handle;
968 
972 #define AMD_DBGAPI_ARCHITECTURE_NONE (amd_dbgapi_architecture_id_t{ 0 })
973 
981 typedef enum
982 {
1034 
1073  amd_dbgapi_architecture_id_t architecture_id,
1074  amd_dbgapi_architecture_info_t query, size_t value_size,
1075  void *value) AMD_DBGAPI_VERSION_0_30;
1076 
1106  uint32_t elf_amdgpu_machine,
1108 
1115 typedef struct amd_dbgapi_symbolizer_id_s *amd_dbgapi_symbolizer_id_t;
1116 
1209  amd_dbgapi_architecture_id_t architecture_id,
1210  amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size,
1211  const void *memory, char **instruction_text,
1212  amd_dbgapi_symbolizer_id_t symbolizer_id,
1213  amd_dbgapi_status_t (*symbolizer) (
1214  amd_dbgapi_symbolizer_id_t symbolizer_id,
1215  amd_dbgapi_global_address_t address,
1216  char **symbol_text)) AMD_DBGAPI_VERSION_0_30;
1217 
1221 typedef enum
1222 {
1321 
1387  amd_dbgapi_architecture_id_t architecture_id,
1388  amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size,
1389  const void *memory, amd_dbgapi_instruction_kind_t *instruction_kind,
1390  void **instruction_properties) AMD_DBGAPI_VERSION_0_24;
1391 
1413 typedef struct amd_dbgapi_client_process_s *amd_dbgapi_client_process_id_t;
1414 
1425 typedef struct
1426 {
1427  uint64_t handle;
1429 
1433 #define AMD_DBGAPI_PROCESS_NONE (amd_dbgapi_process_id_t{ 0 })
1434 
1441 typedef enum
1442 {
1467 
1507  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24;
1508 
1578  amd_dbgapi_client_process_id_t client_process_id,
1580 
1627 
1642 typedef enum
1643 {
1675 
1699  amd_dbgapi_process_id_t process_id,
1701 
1713 typedef enum
1714 {
1724 
1750  amd_dbgapi_process_id_t process_id,
1752 
1779 typedef struct
1780 {
1781  uint64_t handle;
1783 
1787 #define AMD_DBGAPI_CODE_OBJECT_NONE (amd_dbgapi_code_object_id_t{ 0 })
1788 
1795 typedef enum
1796 {
1853 
1897  amd_dbgapi_process_id_t process_id,
1898  amd_dbgapi_code_object_id_t code_object_id,
1899  amd_dbgapi_code_object_info_t query, size_t value_size,
1900  void *value) AMD_DBGAPI_VERSION_0_24;
1901 
1951  amd_dbgapi_process_id_t process_id, size_t *code_object_count,
1952  amd_dbgapi_code_object_id_t **code_objects,
1954 
1971 typedef struct
1972 {
1973  uint64_t handle;
1975 
1979 #define AMD_DBGAPI_AGENT_NONE (amd_dbgapi_agent_id_t{ 0 })
1980 
1987 typedef enum
1988 {
2035 
2079  amd_dbgapi_process_id_t process_id, amd_dbgapi_agent_id_t agent_id,
2080  amd_dbgapi_agent_info_t query, size_t value_size,
2081  void *value) AMD_DBGAPI_VERSION_0_24;
2082 
2129 amd_dbgapi_agent_list (amd_dbgapi_process_id_t process_id, size_t *agent_count,
2130  amd_dbgapi_agent_id_t **agents,
2132 
2151 typedef struct
2152 {
2153  uint64_t handle;
2155 
2159 #define AMD_DBGAPI_QUEUE_NONE (amd_dbgapi_queue_id_t{ 0 })
2160 
2167 typedef enum
2168 {
2197 
2241  amd_dbgapi_process_id_t process_id, amd_dbgapi_queue_id_t queue_id,
2242  amd_dbgapi_queue_info_t query, size_t value_size,
2243  void *value) AMD_DBGAPI_VERSION_0_24;
2244 
2250 typedef enum
2251 {
2310 
2314 typedef enum
2315 {
2329 
2333 typedef enum
2334 {
2363 
2410 amd_dbgapi_queue_list (amd_dbgapi_process_id_t process_id, size_t *queue_count,
2411  amd_dbgapi_queue_id_t **queues,
2413 
2421 
2475  amd_dbgapi_process_id_t process_id, amd_dbgapi_queue_id_t queue_id,
2476  amd_dbgapi_queue_packet_id_t *first_packet_id,
2477  amd_dbgapi_size_t *packets_byte_size,
2478  void **packets_bytes) AMD_DBGAPI_VERSION_0_24;
2479 
2498 typedef struct
2499 {
2500  uint64_t handle;
2502 
2506 #define AMD_DBGAPI_DISPATCH_NONE (amd_dbgapi_dispatch_id_t{ 0 })
2507 
2514 typedef enum
2515 {
2588 
2632  amd_dbgapi_process_id_t process_id, amd_dbgapi_dispatch_id_t dispatch_id,
2633  amd_dbgapi_dispatch_info_t query, size_t value_size,
2634  void *value) AMD_DBGAPI_VERSION_0_24;
2635 
2642 typedef enum
2643 {
2654 
2661 typedef enum
2662 {
2676 
2718  amd_dbgapi_process_id_t process_id, size_t *dispatch_count,
2719  amd_dbgapi_dispatch_id_t **dispatches,
2721 
2738 typedef struct
2739 {
2740  uint64_t handle;
2742 
2746 #define AMD_DBGAPI_WAVE_NONE (amd_dbgapi_wave_id_t{ 0 })
2747 
2754 typedef enum
2755 {
2842 
2890  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
2891  amd_dbgapi_wave_info_t query, size_t value_size,
2892  void *value) AMD_DBGAPI_VERSION_0_30;
2893 
2897 typedef enum
2898 {
2922 
2929 typedef enum
2930 {
3114 
3160 amd_dbgapi_wave_list (amd_dbgapi_process_id_t process_id, size_t *wave_count,
3161  amd_dbgapi_wave_id_t **waves,
3163 
3250 
3254 typedef enum
3255 {
3265 
3372  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
3374 
3468 typedef struct
3469 {
3470  uint64_t handle;
3472 
3476 #define AMD_DBGAPI_DISPLACED_STEPPING_NONE \
3477  (amd_dbgapi_displaced_stepping_id_t{ 0 })
3478 
3556  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
3557  const void *saved_instruction_bytes,
3558  amd_dbgapi_displaced_stepping_id_t *displaced_stepping)
3560 
3611  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
3612  amd_dbgapi_displaced_stepping_id_t displaced_stepping)
3614 
3648 typedef struct
3649 {
3650  uint64_t handle;
3652 
3656 #define AMD_DBGAPI_WATCHPOINT_NONE (amd_dbgapi_watchpoint_id_t{ 0 })
3657 
3664 typedef enum
3665 {
3683 
3690 typedef enum
3691 {
3711 
3718 typedef struct
3719 {
3720  size_t count;
3723 
3790  amd_dbgapi_process_id_t process_id, amd_dbgapi_global_address_t address,
3791  amd_dbgapi_size_t size, amd_dbgapi_watchpoint_kind_t kind,
3792  amd_dbgapi_watchpoint_id_t *watchpoint_id,
3793  amd_dbgapi_global_address_t *watchpoint_address,
3794  amd_dbgapi_size_t *watchpoint_size) AMD_DBGAPI_VERSION_0_24;
3795 ;
3796 
3822  amd_dbgapi_process_id_t process_id,
3824 
3846 typedef struct
3847 {
3848  uint64_t handle;
3850 
3854 #define AMD_DBGAPI_REGISTER_CLASS_NONE (amd_dbgapi_register_class_id_t{ 0 })
3855 
3863 typedef enum
3864 {
3873 
3919  amd_dbgapi_architecture_id_t architecture_id,
3920  amd_dbgapi_register_class_id_t register_class_id,
3921  amd_dbgapi_register_class_info_t query, size_t value_size,
3922  void *value) AMD_DBGAPI_VERSION_0_24;
3923 
3965  amd_dbgapi_architecture_id_t architecture_id, size_t *register_class_count,
3967 
3976 typedef struct
3977 {
3978  uint64_t handle;
3980 
3984 #define AMD_DBGAPI_REGISTER_NONE (amd_dbgapi_register_id_t{ 0 })
3985 
3995 typedef enum
3996 {
4037 
4082  amd_dbgapi_architecture_id_t architecture_id,
4084  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24;
4085 
4134  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4136  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24;
4137 
4183  amd_dbgapi_architecture_id_t architecture_id, size_t *register_count,
4185 
4233  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4234  size_t *register_count,
4236 
4268  amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_register,
4270 
4274 typedef enum
4275 {
4285 
4328  amd_dbgapi_architecture_id_t architecture_id,
4329  amd_dbgapi_register_id_t register_id,
4330  amd_dbgapi_register_class_id_t register_class_id,
4331  amd_dbgapi_register_class_state_t *register_class_state)
4333 
4396  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4397  amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t offset,
4398  amd_dbgapi_size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24;
4399 
4461  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4462  amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t offset,
4463  amd_dbgapi_size_t value_size, const void *value) AMD_DBGAPI_VERSION_0_24;
4464 
4518  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4519  amd_dbgapi_register_id_t register_id,
4520  amd_dbgapi_size_t register_count) AMD_DBGAPI_VERSION_0_24;
4521 
4561 typedef uint32_t amd_dbgapi_lane_id_t;
4562 
4566 #define AMD_DBGAPI_LANE_NONE ((amd_dbgapi_lane_id_t) (-1))
4567 
4581 typedef struct
4582 {
4583  uint64_t handle;
4585 
4589 #define AMD_DBGAPI_ADDRESS_CLASS_NONE (amd_dbgapi_address_class_id_t{ 0 })
4590 
4598 typedef enum
4599 {
4617 
4664  amd_dbgapi_architecture_id_t architecture_id,
4665  amd_dbgapi_address_class_id_t address_class_id,
4666  amd_dbgapi_address_class_info_t query, size_t value_size,
4667  void *value) AMD_DBGAPI_VERSION_0_24;
4668 
4711  amd_dbgapi_architecture_id_t architecture_id, size_t *address_class_count,
4713 
4748  amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_class,
4750 
4762 typedef struct
4763 {
4764  uint64_t handle;
4766 
4770 #define AMD_DBGAPI_ADDRESS_SPACE_NONE (amd_dbgapi_address_space_id_t{ 0 })
4771 
4778 #define AMD_DBGAPI_ADDRESS_SPACE_GLOBAL (amd_dbgapi_address_space_id_t{ 1 })
4779 
4783 typedef enum
4784 {
4801 
4809 typedef enum
4810 {
4834 
4878  amd_dbgapi_architecture_id_t architecture_id,
4879  amd_dbgapi_address_space_id_t address_space_id,
4880  amd_dbgapi_address_space_info_t query, size_t value_size,
4881  void *value) AMD_DBGAPI_VERSION_0_30;
4882 
4922  amd_dbgapi_architecture_id_t architecture_id, size_t *address_space_count,
4924 
4959  amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_space,
4961 
4965 typedef enum
4966 {
4976 
5019  amd_dbgapi_architecture_id_t architecture_id,
5020  amd_dbgapi_address_space_id_t address_space_id1,
5021  amd_dbgapi_address_space_id_t address_space_id2,
5022  amd_dbgapi_address_space_alias_t *address_space_alias)
5024 
5042 
5119  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5120  amd_dbgapi_lane_id_t lane_id,
5121  amd_dbgapi_address_space_id_t source_address_space_id,
5122  amd_dbgapi_segment_address_t source_segment_address,
5123  amd_dbgapi_address_space_id_t destination_address_space_id,
5124  amd_dbgapi_segment_address_t *destination_segment_address)
5126 
5131 typedef enum
5132 {
5144 
5209  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5210  amd_dbgapi_lane_id_t lane_id,
5211  amd_dbgapi_address_space_id_t address_space_id,
5212  amd_dbgapi_segment_address_t segment_address,
5213  amd_dbgapi_address_class_id_t address_class_id,
5214  amd_dbgapi_address_class_state_t *address_class_state)
5216 
5299  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5300  amd_dbgapi_lane_id_t lane_id,
5301  amd_dbgapi_address_space_id_t address_space_id,
5302  amd_dbgapi_segment_address_t segment_address,
5303  amd_dbgapi_size_t *value_size, void *value) AMD_DBGAPI_VERSION_0_30;
5304 
5387  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5388  amd_dbgapi_lane_id_t lane_id,
5389  amd_dbgapi_address_space_id_t address_space_id,
5390  amd_dbgapi_segment_address_t segment_address,
5391  amd_dbgapi_size_t *value_size, const void *value) AMD_DBGAPI_VERSION_0_30;
5392 
5411 typedef enum
5412 {
5424 
5464  amd_dbgapi_process_id_t process_id,
5466 
5498 typedef struct
5499 {
5500  uint64_t handle;
5502 
5506 #define AMD_DBGAPI_EVENT_NONE (amd_dbgapi_event_id_t{ 0 })
5507 
5511 typedef enum
5512 {
5612 
5643  amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t *event_id,
5645 
5649 typedef enum
5650 {
5666 
5673 typedef enum
5674 {
5704 
5749  amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t event_id,
5750  amd_dbgapi_event_info_t query, size_t value_size,
5751  void *value) AMD_DBGAPI_VERSION_0_30;
5752 
5783  amd_dbgapi_process_id_t process_id,
5785 
5807 typedef enum
5808 {
5831 
5852 
5877 typedef struct
5878 {
5879  uint64_t handle;
5881 
5885 typedef enum
5886 {
5896 
5900 #define AMD_DBGAPI_SHARED_LIBRARY_NONE (amd_dbgapi_shared_library_id_t{ 0 })
5901 
5945  amd_dbgapi_process_id_t process_id,
5946  amd_dbgapi_shared_library_id_t shared_library_id,
5947  amd_dbgapi_shared_library_state_t shared_library_state)
5949 
5962 typedef struct
5963 {
5964  uint64_t handle;
5966 
5970 #define AMD_DBGAPI_BREAKPOINT_NONE ((amd_dbgapi_breakpoint_id_t) (0))
5971 
5975 typedef enum
5976 {
5986 
5996 typedef struct amd_dbgapi_client_thread_s *amd_dbgapi_client_thread_id_t;
5997 
6042  amd_dbgapi_process_id_t process_id,
6043  amd_dbgapi_breakpoint_id_t breakpoint_id,
6044  amd_dbgapi_client_thread_id_t client_thread_id,
6046 
6054 {
6055 
6067  void *(*allocate_memory) (size_t byte_size);
6068 
6085  void (*deallocate_memory) (void *data);
6086 
6115  amd_dbgapi_client_process_id_t client_process_id,
6116  amd_dbgapi_os_pid_t *os_pid);
6117 
6153  amd_dbgapi_client_process_id_t client_process_id,
6154  const char *shared_library_name,
6155  amd_dbgapi_shared_library_id_t shared_library_id,
6156  amd_dbgapi_shared_library_state_t *shared_library_state);
6157 
6181  amd_dbgapi_client_process_id_t client_process_id,
6182  amd_dbgapi_shared_library_id_t shared_library_id);
6216  amd_dbgapi_client_process_id_t client_process_id,
6217  amd_dbgapi_shared_library_id_t shared_library_id,
6218  const char *symbol_name, amd_dbgapi_global_address_t *address);
6219 
6268  amd_dbgapi_client_process_id_t client_process_id,
6269  amd_dbgapi_shared_library_id_t shared_library_id,
6270  amd_dbgapi_global_address_t address,
6271  amd_dbgapi_breakpoint_id_t breakpoint_id);
6272 
6304  amd_dbgapi_client_process_id_t client_process_id,
6305  amd_dbgapi_breakpoint_id_t breakpoint_id);
6306 
6315  void (*log_message) (amd_dbgapi_log_level_t level, const char *message);
6316 };
6317 
6320 #if defined(__cplusplus)
6321 } /* extern "C" */
6322 #endif /* defined (__cplusplus) */
6323 
6324 #endif /* amd-dbgapi.h */
The wave stopped due to completing an instruction single-step.
Definition: amd-dbgapi.h:2957
Opaque agent handle.
Definition: amd-dbgapi.h:1971
Return the event kind.
Definition: amd-dbgapi.h:5679
uint64_t amd_dbgapi_global_address_t
Integral type used for a global virtual memory address in the inferior process.
Definition: amd-dbgapi.h:505
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_24
Control precision of memory access reporting.
void(* deallocate_memory)(void *data)
Deallocate memory that was allocated by amd_dbgapi_callbacks_s::allocate_memory.
Definition: amd-dbgapi.h:6085
uint64_t handle
Definition: amd-dbgapi.h:5500
uint64_t handle
Definition: amd-dbgapi.h:966
Return the dispatch grid size (work-items) in the X, Y, and Z dimensions.
Definition: amd-dbgapi.h:2566
The address space is only read the waves of a kernel dispatch.
Definition: amd-dbgapi.h:4799
A set of watchpoints.
Definition: amd-dbgapi.h:3718
The wave stopped after causing a hardware fatal halt.
Definition: amd-dbgapi.h:3098
amd_dbgapi_status_t(* disable_notify_shared_library)(amd_dbgapi_client_process_id_t client_process_id, amd_dbgapi_shared_library_id_t shared_library_id)
Request to stop being notified for a shared library previously set by amd_dbgapi_callbacks_s::enable_...
Definition: amd-dbgapi.h:6180
A wave waits for memory instructions to complete before executing further instructions.
Definition: amd-dbgapi.h:5422
The client process handle is invalid.
Definition: amd-dbgapi.h:771
If none of the bits are set, then amd_dbgapi_wave_stop stopped the wave.
Definition: amd-dbgapi.h:2935
A wave on the queue had a memory violation.
Definition: amd-dbgapi.h:2346
An invalid argument was given to the function.
Definition: amd-dbgapi.h:622
uint64_t handle
Definition: amd-dbgapi.h:3650
Opaque displaced stepping handle.
Definition: amd-dbgapi.h:3468
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_30
Attach to a process in order to provide debug control of the AMD GPUs it uses.
Print fatal error messages.
Definition: amd-dbgapi.h:5817
There is a fence with system memory scope.
Definition: amd-dbgapi.h:2674
The segment address cannot be converted to the requested address space.
Definition: amd-dbgapi.h:751
The instruction causes the wave to stop executing for some period of time, before continuing executio...
Definition: amd-dbgapi.h:1310
amd_dbgapi_wave_creation_t
The kinds of wave creation supported by the hardware.
Definition: amd-dbgapi.h:1713
Queue is in a valid state.
Definition: amd-dbgapi.h:2319
Opaque queue handle.
Definition: amd-dbgapi.h:2151
A packet on the queue is invalid.
Definition: amd-dbgapi.h:2342
Watchpoints are not supported.
Definition: amd-dbgapi.h:3669
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_remove_watchpoint(amd_dbgapi_process_id_t process_id, amd_dbgapi_watchpoint_id_t watchpoint_id) AMD_DBGAPI_VERSION_0_24
Remove a hardware data watchpoint previously set by amd_dbgapi_set_watchpoint.
amd_dbgapi_status_t(* insert_breakpoint)(amd_dbgapi_client_process_id_t client_process_id, amd_dbgapi_shared_library_id_t shared_library_id, amd_dbgapi_global_address_t address, amd_dbgapi_breakpoint_id_t breakpoint_id)
Insert a breakpoint in a shared library using a global address.
Definition: amd-dbgapi.h:6267
Print fatal error and warning messages.
Definition: amd-dbgapi.h:5821
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_queue_get_info(amd_dbgapi_process_id_t process_id, amd_dbgapi_queue_id_t queue_id, amd_dbgapi_queue_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24
Query information about a queue.
The runtime has been unloaded.
Definition: amd-dbgapi.h:5658
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_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_24
Return the list of queues for a process.
Opaque process handle.
Definition: amd-dbgapi.h:1425
amd_dbgapi_status_t(* enable_notify_shared_library)(amd_dbgapi_client_process_id_t client_process_id, const char *shared_library_name, amd_dbgapi_shared_library_id_t shared_library_id, amd_dbgapi_shared_library_state_t *shared_library_state)
Request to be notified when a shared library is loaded and unloaded.
Definition: amd-dbgapi.h:6152
Read access by load instructions.
Definition: amd-dbgapi.h:3695
pid_t amd_dbgapi_os_pid_t
Native operating system process id.
Definition: amd-dbgapi.h:535
The instruction classification is unknown.
Definition: amd-dbgapi.h:1227
The number of Shader Engines (SE) in the agent.
Definition: amd-dbgapi.h:2018
The instruction terminates the wave execution.
Definition: amd-dbgapi.h:1278
The number of lanes supported by the wave.
Definition: amd-dbgapi.h:2840
amd_dbgapi_breakpoint_action_t
The action to perform after reporting a breakpoint has been hit.
Definition: amd-dbgapi.h:5975
Return how watchpoints are shared between processes.
Definition: amd-dbgapi.h:1459
Return the architecture of this dispatch.
Definition: amd-dbgapi.h:2531
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_code_object_get_info(amd_dbgapi_process_id_t process_id, 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_24
Query information about a code object.
Return the source language address class name.
Definition: amd-dbgapi.h:4606
There is a fence with agent memory scope.
Definition: amd-dbgapi.h:2670
The address space is read only.
Definition: amd-dbgapi.h:4794
amd_dbgapi_wave_state_t
The execution state of a wave.
Definition: amd-dbgapi.h:2897
uint32_t amd_dbgapi_lane_id_t
A wave lane handle.
Definition: amd-dbgapi.h:4561
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_global_address_t *watchpoint_address, amd_dbgapi_size_t *watchpoint_size) AMD_DBGAPI_VERSION_0_24
Set a hardware data watchpoint.
Return the AMD GPU ELF EF_AMDGPU_MACH value corresponding to the architecture.
Definition: amd-dbgapi.h:997
There is no fence.
Definition: amd-dbgapi.h:2666
The wave is running in single-step mode.
Definition: amd-dbgapi.h:2907
amd_dbgapi_changed_t
Indication of if a value has changed.
Definition: amd-dbgapi.h:515
The wave is stopped.
Definition: amd-dbgapi.h:698
The wave cannot be resumed.
Definition: amd-dbgapi.h:706
Opaque register class handle.
Definition: amd-dbgapi.h:3846
uint64_t handle
Definition: amd-dbgapi.h:1427
The segment address in the address space is a member of the source language address class...
Definition: amd-dbgapi.h:5142
amd_dbgapi_agent_info_t
Agent queries that are supported by amd_dbgapi_agent_get_info.
Definition: amd-dbgapi.h:1987
amd_dbgapi_dispatch_barrier_t
Dispatch barrier.
Definition: amd-dbgapi.h:2642
Return the size of the register in bytes.
Definition: amd-dbgapi.h:4013
A wave on the queue executed an instruction that caused an error.
Definition: amd-dbgapi.h:2356
The wave stopped due to triggering an enabled floating point invalid operation exception.
Definition: amd-dbgapi.h:2999
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_event_get_info(amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t event_id, amd_dbgapi_event_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_30
Query information about an event.
The wave stopped due to triggering an enabled floating point overflow exception.
Definition: amd-dbgapi.h:2984
No more watchpoints available.
Definition: amd-dbgapi.h:723
amd_dbgapi_status_t(* get_os_pid)(amd_dbgapi_client_process_id_t client_process_id, amd_dbgapi_os_pid_t *os_pid)
Return the native operating system process handle for the process identified by the client process ha...
Definition: amd-dbgapi.h:6114
Opaque hardware data watchpoint handle.
Definition: amd-dbgapi.h:3648
Return the wave of a AMD_DBGAPI_EVENT_KIND_WAVE_STOP or AMD_DBGAPI_EVENT_KIND_WAVE_COMMAND_TERMINATED...
Definition: amd-dbgapi.h:5685
uint64_t handle
Definition: amd-dbgapi.h:5964
Queue supports the AMD SDMA protocol.
Definition: amd-dbgapi.h:2304
Return the breakpoint of a AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME event.
Definition: amd-dbgapi.h:5690
Print no messages.
Definition: amd-dbgapi.h:5812
const char AMD_DBGAPI * amd_dbgapi_get_build_name(void) AMD_DBGAPI_VERSION_0_24
Query the installed library build name.
Return the architecture of this wave.
Definition: amd-dbgapi.h:2808
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, void **instruction_properties) AMD_DBGAPI_VERSION_0_24
Classify a single instruction.
amd_dbgapi_log_level_t
The logging levels supported.
Definition: amd-dbgapi.h:5807
The watchpoint handle is invalid.
Definition: amd-dbgapi.h:719
No forward progress is needed.
Definition: amd-dbgapi.h:1673
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_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_24
Return the list of loaded code objects for a process.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_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_24
Return the list of agents for a process.
The operation is not currently implemented.
Definition: amd-dbgapi.h:614
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_complete(amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id, amd_dbgapi_displaced_stepping_id_t displaced_stepping) AMD_DBGAPI_VERSION_0_24
Complete a displaced stepping buffer for a wave.
PCI slot of the agent in BDF format (see [Bus:Device.Function (BDF) Notation][bfd].
Definition: amd-dbgapi.h:2005
The wave stopped due to executing an trap instruction other than the AMD_DBGAPI_WAVE_STOP_REASON_DEBU...
Definition: amd-dbgapi.h:3049
The instruction enters the trap handler.
Definition: amd-dbgapi.h:1292
The function has executed successfully.
Definition: amd-dbgapi.h:582
The value has changed.
Definition: amd-dbgapi.h:524
Read-modify-write access by atomic instructions.
Definition: amd-dbgapi.h:3704
The instruction has some form of special behavior not covered by any of the other instruction kinds...
Definition: amd-dbgapi.h:1319
Return the dispatch workgroup size (work-items) in the X, Y, and Z dimensions.
Definition: amd-dbgapi.h:2561
The wave is not stopped.
Definition: amd-dbgapi.h:694
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_24
Report the list of register classes supported by the architecture.
amd_dbgapi_queue_state_t
Queue state.
Definition: amd-dbgapi.h:2314
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_30
Read memory.
The code object handle is invalid.
Definition: amd-dbgapi.h:666
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_read_register(amd_dbgapi_process_id_t process_id, 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_24
Read a register.
No more displaced stepping buffers are available that are suitable for the requested wave...
Definition: amd-dbgapi.h:715
The wave stopped due to triggering an enabled floating point underflow exception. ...
Definition: amd-dbgapi.h:2989
Return the dispatch barrier setting.
Definition: amd-dbgapi.h:2541
The shared library handle is invalid.
Definition: amd-dbgapi.h:759
Opaque shared library handle.
Definition: amd-dbgapi.h:5877
An event has occurred that is causing the queue to enter the error state.
Definition: amd-dbgapi.h:5610
Return the queue type.
Definition: amd-dbgapi.h:2183
amd_dbgapi_event_info_t
Event queries that are supported by amd_dbgapi_event_get_info.
Definition: amd-dbgapi.h:5673
amd_dbgapi_status_t(* get_symbol_address)(amd_dbgapi_client_process_id_t client_process_id, amd_dbgapi_shared_library_id_t shared_library_id, const char *symbol_name, amd_dbgapi_global_address_t *address)
Return the address of a symbol in a shared library.
Definition: amd-dbgapi.h:6215
amd_dbgapi_runtime_state_t
Inferior runtime state.
Definition: amd-dbgapi.h:5649
The wave stopped due to executing a debug trap instruction.
Definition: amd-dbgapi.h:3019
amd_dbgapi_shared_library_state_t
The state of a shared library.
Definition: amd-dbgapi.h:5885
Resume execution.
Definition: amd-dbgapi.h:5980
A wave on the queue had an assert trap.
Definition: amd-dbgapi.h:2350
PCI vendor ID of the agent.
Definition: amd-dbgapi.h:2009
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_24
Set the progress required for a process.
The list of code objects has changed.
Definition: amd-dbgapi.h:5551
Return the wave&#39;s state.
Definition: amd-dbgapi.h:2760
Return the dispatch release fence.
Definition: amd-dbgapi.h:2551
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_get_status_string(amd_dbgapi_status_t status, const char **status_string) AMD_DBGAPI_VERSION_0_24
Query a textual description of a status code.
The wave belongs to a queue that is in the error state.
Definition: amd-dbgapi.h:2969
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_convert_address_space(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 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_VERSION_0_24
Convert a source segment address in the source address space into a destination segment address in th...
Return the queue to which this wave belongs.
Definition: amd-dbgapi.h:2797
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_finalize(void) AMD_DBGAPI_VERSION_0_24
Finalize the library.
The instruction unconditionally branches to a literal address.
Definition: amd-dbgapi.h:1239
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_initialize(amd_dbgapi_callbacks_t *callbacks) AMD_DBGAPI_VERSION_0_30
Initialize the library.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_is_in_address_class(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_address_class_id_t address_class_id, amd_dbgapi_address_class_state_t *address_class_state) AMD_DBGAPI_VERSION_0_24
Determine if a segment address in an address space is a member of a source language address class...
The breakpoint handle is invalid.
Definition: amd-dbgapi.h:763
Return the reason the wave stopped as a bit set.
Definition: amd-dbgapi.h:2767
The library is already initialized.
Definition: amd-dbgapi.h:630
amd_dbgapi_code_object_info_t
Code object queries that are supported by amd_dbgapi_code_object_get_info.
Definition: amd-dbgapi.h:1795
Return the agent to which this queue belongs.
Definition: amd-dbgapi.h:2173
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_address_class_get_info(amd_dbgapi_architecture_id_t architecture_id, 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_24
Query information about a source language address class of an architecture.
amd_dbgapi_queue_error_reason_t
A bit mask of the reasons that a queue is in error.
Definition: amd-dbgapi.h:2333
int amd_dbgapi_notifier_t
Type used to notify the client of the library that a process may have pending events.
Definition: amd-dbgapi.h:562
#define AMD_DBGAPI_VERSION_0_30
The function was introduced in version 0.30 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:469
The instruction unconditionally branches to an address held in a pair of registers.
Definition: amd-dbgapi.h:1254
#define AMD_DBGAPI
Definition: amd-dbgapi.h:429
A command for a wave was not able to complete because the wave has terminated.
Definition: amd-dbgapi.h:5535
Return the byte size of an address in the address space.
Definition: amd-dbgapi.h:4822
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_event_processed(amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t event_id) AMD_DBGAPI_VERSION_0_24
Report that an event has been processed.
Agent name.
Definition: amd-dbgapi.h:1994
The lane handle is invalid.
Definition: amd-dbgapi.h:735
The wave stopped due to triggering a data watchpoint.
Definition: amd-dbgapi.h:2953
The wave handle is invalid.
Definition: amd-dbgapi.h:690
Opaque code object handle.
Definition: amd-dbgapi.h:1779
#define AMD_DBGAPI_VERSION_0_24
The function was introduced in version 0.24 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:463
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_24
Get an architecture from the AMD GPU ELF EF_AMDGPU_MACH value corresponding to the architecture...
amd_dbgapi_address_class_state_t
Indication of whether a segment address in an address space is a member of an source language address...
Definition: amd-dbgapi.h:5131
amd_dbgapi_address_class_info_t
Source language address class queries that are supported by amd_dbgapi_architecture_address_class_get...
Definition: amd-dbgapi.h:4598
uint64_t handle
Definition: amd-dbgapi.h:5879
uint64_t handle
Definition: amd-dbgapi.h:3470
Return the address space access.
Definition: amd-dbgapi.h:4832
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_spaces_may_alias(amd_dbgapi_architecture_id_t architecture_id, amd_dbgapi_address_space_id_t address_space_id1, amd_dbgapi_address_space_id_t address_space_id2, amd_dbgapi_address_space_alias_t *address_space_alias) AMD_DBGAPI_VERSION_0_24
Determine if an address in one address space may alias an address in another address space...
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_30
Query information about an architecture.
The register class handle is invalid.
Definition: amd-dbgapi.h:727
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_class_get_info(amd_dbgapi_architecture_id_t architecture_id, 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_24
Query information about a register class of an architecture.
amd_dbgapi_register_class_state_t
Indication of whether a register is a member of a register class.
Definition: amd-dbgapi.h:4274
A reserved value only present to ensure that the underlying representation of this enumeration type i...
Definition: amd-dbgapi.h:3112
The instruction unconditionally halts the wave.
Definition: amd-dbgapi.h:1297
Return the number of data watchpoints supported by the process.
Definition: amd-dbgapi.h:1453
uint64_t handle
Definition: amd-dbgapi.h:3848
amd_dbgapi_watchpoint_kind_t
Watchpoint memory access kinds.
Definition: amd-dbgapi.h:3690
The notifier for the process that indicates if pending events are available.
Definition: amd-dbgapi.h:1447
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_start(amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id, const void *saved_instruction_bytes, amd_dbgapi_displaced_stepping_id_t *displaced_stepping) AMD_DBGAPI_VERSION_0_24
Create a displaced stepping buffer.
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_24
Set the wave creation mode for a process.
void(* log_message)(amd_dbgapi_log_level_t level, const char *message)
Report a log message.
Definition: amd-dbgapi.h:6315
Return the dispatch acquire fence.
Definition: amd-dbgapi.h:2546
Opaque event handle.
Definition: amd-dbgapi.h:5498
The runtime support in the inferior has been loaded or unloaded.
Definition: amd-dbgapi.h:5574
Normal progress is needed.
Definition: amd-dbgapi.h:1649
amd_dbgapi_watchpoint_id_t * watchpoint_ids
Definition: amd-dbgapi.h:3721
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_24
Report the list of address spaces supported by the architecture.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_prefetch_register(amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t register_count) AMD_DBGAPI_VERSION_0_24
Prefetch register values.
Return the dispatch to which this wave belongs.
Definition: amd-dbgapi.h:2791
amd_dbgapi_event_kind_t
The event kinds.
Definition: amd-dbgapi.h:5511
void AMD_DBGAPI amd_dbgapi_set_log_level(amd_dbgapi_log_level_t level) AMD_DBGAPI_VERSION_0_24
Set the logging level.
Return the register class name.
Definition: amd-dbgapi.h:3871
The instruction unconditionally branches to an address held in a pair of source registers and the add...
Definition: amd-dbgapi.h:1273
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_register_list(amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id, size_t *register_count, amd_dbgapi_register_id_t **registers) AMD_DBGAPI_VERSION_0_24
Report the list of registers supported by a wave.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_get_info(amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id, amd_dbgapi_wave_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_30
Query information about a wave.
No addresses in the address spaces can alias.
Definition: amd-dbgapi.h:4970
The wave has an outstanding stop request.
Definition: amd-dbgapi.h:702
The library is not initialized.
Definition: amd-dbgapi.h:634
The wave stopped due to triggering an enabled floating point input denormal exception.
Definition: amd-dbgapi.h:2974
The symbol was not found.
Definition: amd-dbgapi.h:784
Write access by store instructions or read-modify-write access by atomic instructions.
Definition: amd-dbgapi.h:3700
amd_dbgapi_address_space_alias_t
Indication of whether addresses in two address spaces may alias.
Definition: amd-dbgapi.h:4965
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_report_breakpoint_hit(amd_dbgapi_process_id_t process_id, 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_24
Report that a breakpoint inserted by the amd_dbgapi_callbacks_s::insert_breakpoint calback has been h...
Return the register handle for the PC for the architecture.
Definition: amd-dbgapi.h:1032
The wave stopped due to detecting an unrecoverable ECC error.
Definition: amd-dbgapi.h:3089
amd_dbgapi_address_space_access_t
Indication of how the address space is accessed.
Definition: amd-dbgapi.h:4783
Queue supports the AMD PM4 protocol.
Definition: amd-dbgapi.h:2300
The bytes being disassembled are not a legal instruction.
Definition: amd-dbgapi.h:662
uint64_t handle
Definition: amd-dbgapi.h:2153
uint64_t amd_dbgapi_segment_address_t
Each address space has its own linear address to access it termed a segment address.
Definition: amd-dbgapi.h:5041
Dispatch has a barrier.
Definition: amd-dbgapi.h:2652
Return the breakpoint instruction for the architecture.
Definition: amd-dbgapi.h:1021
The value has not changed.
Definition: amd-dbgapi.h:520
The instruction conditionally branches to a literal address.
Definition: amd-dbgapi.h:1246
The URI name of the ELF shared object from which the code object was loaded.
Definition: amd-dbgapi.h:1845
Opaque address space handle.
Definition: amd-dbgapi.h:4762
The ELF AMD GPU machine value is invalid or unsupported.
Definition: amd-dbgapi.h:670
The difference between the address in the ELF shared object and the address the code object is loaded...
Definition: amd-dbgapi.h:1851
The address space supports all accesses.
Definition: amd-dbgapi.h:4789
The register handle is invalid.
Definition: amd-dbgapi.h:731
amd_dbgapi_queue_type_t
Queue type.
Definition: amd-dbgapi.h:2250
Unknown queue type.
Definition: amd-dbgapi.h:2255
Memory instructions execute normally and a wave does not wait for the memory access to complete...
Definition: amd-dbgapi.h:5417
amd_dbgapi_process_info_t
Process queries that are supported by amd_dbgapi_process_get_info.
Definition: amd-dbgapi.h:1441
uint64_t handle
Definition: amd-dbgapi.h:2500
The wave stopped due to triggering an enabled floating point inexact exception.
Definition: amd-dbgapi.h:2994
Queue supports the HSA kernel dispatch with multiple producers protocol.
Definition: amd-dbgapi.h:2270
The register is not a member of the register class.
Definition: amd-dbgapi.h:4279
Maximum number of waves possible in a SIMD.
Definition: amd-dbgapi.h:2033
The address class handle is invalid.
Definition: amd-dbgapi.h:739
A wave has stopped.
Definition: amd-dbgapi.h:5520
amd_dbgapi_architecture_info_t
Architecture queries that are supported by amd_dbgapi_architecture_get_info.
Definition: amd-dbgapi.h:981
Return the queue packet ID of the dispatch packet that initiated the dispatch.
Definition: amd-dbgapi.h:2536
Opaque register handle.
Definition: amd-dbgapi.h:3976
amd_dbgapi_dispatch_fence_scope_t
Dispatch memory fence scope.
Definition: amd-dbgapi.h:2661
Addresses in the address spaces may alias.
Definition: amd-dbgapi.h:4974
The watchpoints of a process are shared between all processes.
Definition: amd-dbgapi.h:3681
The event handle is invalid.
Definition: amd-dbgapi.h:755
The wave stopped due to triggering an enabled integer divide by zero exception.
Definition: amd-dbgapi.h:3004
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_24
Report the list of registers supported by the architecture.
Normal wave creation allows new waves to be created.
Definition: amd-dbgapi.h:1718
Return the dispatch group segment size in bytes.
Definition: amd-dbgapi.h:2576
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_queue_packet_list(amd_dbgapi_process_id_t process_id, amd_dbgapi_queue_id_t queue_id, amd_dbgapi_queue_packet_id_t *first_packet_id, amd_dbgapi_size_t *packets_byte_size, void **packets_bytes) AMD_DBGAPI_VERSION_0_24
Return the packets for a queue of a process.
Return the address space name.
Definition: amd-dbgapi.h:4817
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_24
Return a register handle from an AMD GPU DWARF register number.
Return the architecture name.
Definition: amd-dbgapi.h:989
Return the agent to which this queue belongs.
Definition: amd-dbgapi.h:2526
The displaced stepping handle is invalid.
Definition: amd-dbgapi.h:710
Resume execution in in single step mode.
Definition: amd-dbgapi.h:3263
A fatal error has occurred.
Definition: amd-dbgapi.h:608
amd_dbgapi_queue_info_t
Queue queries that are supported by amd_dbgapi_queue_get_info.
Definition: amd-dbgapi.h:2167
The runtime has been loaded and debugging is supported by the library.
Definition: amd-dbgapi.h:5654
The segment address in the address space is not a member of the source language address class...
Definition: amd-dbgapi.h:5137
The wave stopped with an XNACK error.
Definition: amd-dbgapi.h:3107
uint64_t amd_dbgapi_queue_packet_id_t
Queue packet ID.
Definition: amd-dbgapi.h:2420
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_30
Write memory.
amd_dbgapi_register_info_t
Register queries that are supported by amd_dbgapi_architecture_register_get_info and amd_dbgapi_wave_...
Definition: amd-dbgapi.h:3995
uint64_t handle
Definition: amd-dbgapi.h:1973
size_t count
Definition: amd-dbgapi.h:3720
The watchpoints are not shared across processes.
Definition: amd-dbgapi.h:3675
amd_dbgapi_register_class_info_t
Register class queries that are supported by amd_dbgapi_architecture_register_class_get_info.
Definition: amd-dbgapi.h:3863
void AMD_DBGAPI amd_dbgapi_get_version(uint32_t *major, uint32_t *minor, uint32_t *patch) AMD_DBGAPI_VERSION_0_24
Query the version of the installed library.
Return the agent to which this wave belongs.
Definition: amd-dbgapi.h:2803
Request to resume a host breakpoint.
Definition: amd-dbgapi.h:5564
The process handle is invalid.
Definition: amd-dbgapi.h:674
The wave stopped due to triggering a memory violation.
Definition: amd-dbgapi.h:3064
Queue supports HSA kernel dispatch with multiple producers protocol that supports cooperative dispatc...
Definition: amd-dbgapi.h:2296
Return the architecture specific address space that is used to implement a pointer or reference to th...
Definition: amd-dbgapi.h:4615
The wave stopped due to executing an assert trap instruction.
Definition: amd-dbgapi.h:3037
The instruction unconditionally branches to a literal address and the address of the following instru...
Definition: amd-dbgapi.h:1263
The address space handle is invalid.
Definition: amd-dbgapi.h:743
Print fatal error, warning, and info messages.
Definition: amd-dbgapi.h:5825
Number of compute units available in the agent.
Definition: amd-dbgapi.h:2023
Opaque dispatch handle.
Definition: amd-dbgapi.h:2498
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_24
Report the list of source language address classes supported by the architecture. ...
Queue supports the HSA kernel dispatch with single producer protocol.
Definition: amd-dbgapi.h:2286
Return the client thread of a AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME event.
Definition: amd-dbgapi.h:5695
The instruction executes sequentially.
Definition: amd-dbgapi.h:1233
Return the queue to which this dispatch belongs.
Definition: amd-dbgapi.h:2520
The wave stopped due to triggering an enabled floating point divide by zero exception.
Definition: amd-dbgapi.h:2979
The runtime has been loaded but there is a restriction error that prevents debugging the process...
Definition: amd-dbgapi.h:5664
Return if the runtime loaded in the inferior is supported by the library for a AMD_DBGAPI_EVENT_KIND_...
Definition: amd-dbgapi.h:5702
Callbacks that the client of the library must provide.
Definition: amd-dbgapi.h:6053
The shared library is not currently loaded.
Definition: amd-dbgapi.h:780
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_stop(amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id) AMD_DBGAPI_VERSION_0_24
Request a wave to stop executing.
There is a restriction error that prevents debugging the process.
Definition: amd-dbgapi.h:650
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_agent_get_info(amd_dbgapi_process_id_t process_id, amd_dbgapi_agent_id_t agent_id, amd_dbgapi_agent_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24
Query information about an agent.
Return the breakpoint instruction size in bytes for the architecture.
Definition: amd-dbgapi.h:1013
Return the dispatch private segment size in bytes.
Definition: amd-dbgapi.h:2571
Opaque source language address class handle.
Definition: amd-dbgapi.h:4581
amd_dbgapi_progress_t
The kinds of progress supported by the library.
Definition: amd-dbgapi.h:1642
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dispatch_get_info(amd_dbgapi_process_id_t process_id, amd_dbgapi_dispatch_id_t dispatch_id, amd_dbgapi_dispatch_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24
Query information about a dispatch.
Return the dispatch kernel function address.
Definition: amd-dbgapi.h:2586
Return the reason the queue is in error as a bit set.
Definition: amd-dbgapi.h:2195
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_register_get_info(amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_register_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24
Query information about a register of a wave.
amd_dbgapi_memory_precision_t
Memory access precision.
Definition: amd-dbgapi.h:5411
uint64_t handle
Definition: amd-dbgapi.h:1781
Opaque wave handle.
Definition: amd-dbgapi.h:2738
Return the number of bytes to subtract from the PC after stopping due to a breakpoint instruction to ...
Definition: amd-dbgapi.h:1027
uint64_t handle
Definition: amd-dbgapi.h:2740
Return the largest instruction size in bytes for the architecture.
Definition: amd-dbgapi.h:1002
amd_dbgapi_address_space_info_t
Address space queries that are supported by amd_dbgapi_address_space_get_info.
Definition: amd-dbgapi.h:4809
Return the minimum instruction alignment in bytes for the architecture.
Definition: amd-dbgapi.h:1008
The native operating system process associated with a client process has exited.
Definition: amd-dbgapi.h:776
Number of SIMDs per compute unit (CU).
Definition: amd-dbgapi.h:2028
The instruction performs some kind of execution barrier which may result in the wave being halted unt...
Definition: amd-dbgapi.h:1304
Stop wave creation prevents new waves from being created.
Definition: amd-dbgapi.h:1722
The wave is running.
Definition: amd-dbgapi.h:2902
No event.
Definition: amd-dbgapi.h:5516
Resume normal execution.
Definition: amd-dbgapi.h:3259
The operation is not supported.
Definition: amd-dbgapi.h:618
uint64_t handle
Definition: amd-dbgapi.h:3978
uint64_t handle
Definition: amd-dbgapi.h:4764
Return the dispatch grid dimensionality.
Definition: amd-dbgapi.h:2556
uint64_t amd_dbgapi_size_t
Integral type used for sizes, including memory allocations, in the inferior.
Definition: amd-dbgapi.h:510
Return the NULL segment address value in the address space.
Definition: amd-dbgapi.h:4827
The shared library is loaded.
Definition: amd-dbgapi.h:5890
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_write_register(amd_dbgapi_process_id_t process_id, 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_24
Write a register.
Queue supports the AMD SDMA XGMI protocol.
Definition: amd-dbgapi.h:2308
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_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_24
Return the list of dispatches for a process.
Return the dispatch kernel argument segment address.
Definition: amd-dbgapi.h:2581
Return the architecture of this queue.
Definition: amd-dbgapi.h:2178
amd_dbgapi_wave_stop_reason_t
A bit mask of the reasons that a wave stopped.
Definition: amd-dbgapi.h:2929
The register is a member of the register class.
Definition: amd-dbgapi.h:4283
Return the architecture of this agent.
Definition: amd-dbgapi.h:1999
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_register_is_in_register_class(amd_dbgapi_architecture_id_t architecture_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_register_class_id_t register_class_id, amd_dbgapi_register_class_state_t *register_class_state) AMD_DBGAPI_VERSION_0_24
Determine if a register is a member of a register class.
A callback to the client reported an error.
Definition: amd-dbgapi.h:767
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_report_shared_library(amd_dbgapi_process_id_t process_id, amd_dbgapi_shared_library_id_t shared_library_id, amd_dbgapi_shared_library_state_t shared_library_state) AMD_DBGAPI_VERSION_0_24
Report that a shared library enabled by the amd_dbgapi_callbacks_s::enable_notify_shared_library call...
The wave stopped due to executing a breakpoint instruction.
Definition: amd-dbgapi.h:2941
amd_dbgapi_resume_mode_t
The mode in which to resuming the execution of a wave.
Definition: amd-dbgapi.h:3254
amd_dbgapi_status_t
AMD debugger API status codes.
Definition: amd-dbgapi.h:577
Return the current program counter value of the wave.
Definition: amd-dbgapi.h:2814
The agent handle is invalid.
Definition: amd-dbgapi.h:678
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_resume(amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id, amd_dbgapi_resume_mode_t resume_mode) AMD_DBGAPI_VERSION_0_24
Resume execution of a stopped wave.
The architecture handle is invalid.
Definition: amd-dbgapi.h:658
A reserved value only present to ensure that the underlying representation of this enumeration type i...
Definition: amd-dbgapi.h:2361
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_30
Disassemble a single instruction.
The wave workgroup coordinate in the dispatch grid dimensions.
Definition: amd-dbgapi.h:2828
Leave execution halted.
Definition: amd-dbgapi.h:5984
Opaque architecture handle.
Definition: amd-dbgapi.h:964
If none of the bits are set, then the queue is not in the error state.
Definition: amd-dbgapi.h:2338
amd_dbgapi_wave_info_t
Wave queries that are supported by amd_dbgapi_wave_get_info.
Definition: amd-dbgapi.h:2754
uint64_t handle
Definition: amd-dbgapi.h:4583
The address is not within the shared library.
Definition: amd-dbgapi.h:788
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_24
Return the address space from an AMD GPU DWARF address space number.
The wave&#39;s number in the workgroup.
Definition: amd-dbgapi.h:2835
Return the queue state.
Definition: amd-dbgapi.h:2188
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_get_info(amd_dbgapi_architecture_id_t architecture_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_register_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24
Query information about a register of an architecture.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_detach(amd_dbgapi_process_id_t process_id) AMD_DBGAPI_VERSION_0_24
Detach from a process and no longer have debug control of the AMD GPU devices it uses.
The wave is stopped.
Definition: amd-dbgapi.h:2920
The wave stopped due to executing an illegal instruction.
Definition: amd-dbgapi.h:3074
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_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_24
Return the list of existing waves for a process.
Queue is in an error state.
Definition: amd-dbgapi.h:2327
struct amd_dbgapi_symbolizer_id_s * amd_dbgapi_symbolizer_id_t
Opaque client symbolizer handle.
Definition: amd-dbgapi.h:1115
An error occurred while trying to access memory in the inferior.
Definition: amd-dbgapi.h:747
A generic error has occurred.
Definition: amd-dbgapi.h:586
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_space_get_info(amd_dbgapi_architecture_id_t architecture_id, 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_30
Query information about an address space.
The process is already attached to the given inferior process.
Definition: amd-dbgapi.h:654
struct amd_dbgapi_client_process_s * amd_dbgapi_client_process_id_t
Opaque client process handle.
Definition: amd-dbgapi.h:1413
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_24
Query information about a process.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_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_24
Obtain the next pending event for a process.
Dispatch has no barrier.
Definition: amd-dbgapi.h:2647
amd_dbgapi_watchpoint_share_kind_t
The way watchpoints are shared between processes.
Definition: amd-dbgapi.h:3664
The dispatch handle is invalid.
Definition: amd-dbgapi.h:686
amd_dbgapi_instruction_kind_t
The kinds of instruction classifications.
Definition: amd-dbgapi.h:1221
Read, write, or read-modify-write access by load, store, or atomic instructions.
Definition: amd-dbgapi.h:3709
The shared library is unloaded.
Definition: amd-dbgapi.h:5894
Return the watchpoint(s) the wave triggered.
Definition: amd-dbgapi.h:2780
struct amd_dbgapi_client_thread_s * amd_dbgapi_client_thread_id_t
Opaque client thread handle.
Definition: amd-dbgapi.h:5996
Return the register name.
Definition: amd-dbgapi.h:4003
Return if the architectures of all the agents of a process support controlling memory precision...
Definition: amd-dbgapi.h:1465
Print fatal error, warning, info, and verbose messages.
Definition: amd-dbgapi.h:5829
The queue handle is invalid.
Definition: amd-dbgapi.h:682
amd_dbgapi_status_t(* remove_breakpoint)(amd_dbgapi_client_process_id_t client_process_id, amd_dbgapi_breakpoint_id_t breakpoint_id)
Remove a breakpoint previously inserted by amd_dbgapi_callbacks_s::insert_breakpoint.
Definition: amd-dbgapi.h:6303
PCI device ID of the agent.
Definition: amd-dbgapi.h:2013
Return the register type as a C style type string.
Definition: amd-dbgapi.h:4035
An invalid size was given to the function.
Definition: amd-dbgapi.h:626
amd_dbgapi_dispatch_info_t
Dispatch queries that are supported by amd_dbgapi_dispatch_get_info.
Definition: amd-dbgapi.h:2514
Opaque breakpoint handle.
Definition: amd-dbgapi.h:5962
Return the current execution mask of the wave.
Definition: amd-dbgapi.h:2822
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_24
Return the architecture source language address class from a DWARF address class number.