AMD_DBGAPI  0.31.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 
475 #define AMD_DBGAPI_VERSION_0_31
476 
484 
512 
516 typedef uint64_t amd_dbgapi_size_t;
517 
521 typedef enum
522 {
532 
540 #if defined(__linux__)
541 typedef pid_t amd_dbgapi_os_pid_t;
542 #endif /* __linux__ */
543 
567 #if defined(__linux__)
569 #endif /* __linux__ */
570 
583 typedef enum
584 {
796 
814  amd_dbgapi_status_t status,
815  const char **status_string) AMD_DBGAPI_VERSION_0_24;
816 
840 #define AMD_DBGAPI_VERSION_MAJOR 0
841 
846 #define AMD_DBGAPI_VERSION_MINOR 31
847 
862  uint32_t *major, uint32_t *minor, uint32_t *patch) AMD_DBGAPI_VERSION_0_24;
863 
872 const char AMD_DBGAPI *
873 amd_dbgapi_get_build_name (void) AMD_DBGAPI_VERSION_0_24;
874 
922 
948  AMD_DBGAPI_VERSION_0_24;
949 
970 typedef struct
971 {
972  uint64_t handle;
974 
978 #define AMD_DBGAPI_ARCHITECTURE_NONE (amd_dbgapi_architecture_id_t{ 0 })
979 
987 typedef enum
988 {
1040 
1079  amd_dbgapi_architecture_id_t architecture_id,
1080  amd_dbgapi_architecture_info_t query, size_t value_size,
1081  void *value) AMD_DBGAPI_VERSION_0_30;
1082 
1112  uint32_t elf_amdgpu_machine,
1114 
1121 typedef struct amd_dbgapi_symbolizer_id_s *amd_dbgapi_symbolizer_id_t;
1122 
1215  amd_dbgapi_architecture_id_t architecture_id,
1216  amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size,
1217  const void *memory, char **instruction_text,
1218  amd_dbgapi_symbolizer_id_t symbolizer_id,
1219  amd_dbgapi_status_t (*symbolizer) (
1220  amd_dbgapi_symbolizer_id_t symbolizer_id,
1221  amd_dbgapi_global_address_t address,
1222  char **symbol_text)) AMD_DBGAPI_VERSION_0_30;
1223 
1227 typedef enum
1228 {
1327 
1393  amd_dbgapi_architecture_id_t architecture_id,
1394  amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size,
1395  const void *memory, amd_dbgapi_instruction_kind_t *instruction_kind,
1396  void **instruction_properties) AMD_DBGAPI_VERSION_0_24;
1397 
1419 typedef struct amd_dbgapi_client_process_s *amd_dbgapi_client_process_id_t;
1420 
1431 typedef struct
1432 {
1433  uint64_t handle;
1435 
1439 #define AMD_DBGAPI_PROCESS_NONE (amd_dbgapi_process_id_t{ 0 })
1440 
1447 typedef enum
1448 {
1473 
1513  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24;
1514 
1584  amd_dbgapi_client_process_id_t client_process_id,
1586 
1633 
1648 typedef enum
1649 {
1681 
1705  amd_dbgapi_process_id_t process_id,
1707 
1719 typedef enum
1720 {
1730 
1756  amd_dbgapi_process_id_t process_id,
1758 
1785 typedef struct
1786 {
1787  uint64_t handle;
1789 
1793 #define AMD_DBGAPI_CODE_OBJECT_NONE (amd_dbgapi_code_object_id_t{ 0 })
1794 
1801 typedef enum
1802 {
1859 
1903  amd_dbgapi_process_id_t process_id,
1904  amd_dbgapi_code_object_id_t code_object_id,
1905  amd_dbgapi_code_object_info_t query, size_t value_size,
1906  void *value) AMD_DBGAPI_VERSION_0_24;
1907 
1957  amd_dbgapi_process_id_t process_id, size_t *code_object_count,
1958  amd_dbgapi_code_object_id_t **code_objects,
1960 
1977 typedef struct
1978 {
1979  uint64_t handle;
1981 
1985 #define AMD_DBGAPI_AGENT_NONE (amd_dbgapi_agent_id_t{ 0 })
1986 
1993 typedef enum
1994 {
2041 
2085  amd_dbgapi_process_id_t process_id, amd_dbgapi_agent_id_t agent_id,
2086  amd_dbgapi_agent_info_t query, size_t value_size,
2087  void *value) AMD_DBGAPI_VERSION_0_24;
2088 
2135 amd_dbgapi_agent_list (amd_dbgapi_process_id_t process_id, size_t *agent_count,
2136  amd_dbgapi_agent_id_t **agents,
2138 
2157 typedef struct
2158 {
2159  uint64_t handle;
2161 
2165 #define AMD_DBGAPI_QUEUE_NONE (amd_dbgapi_queue_id_t{ 0 })
2166 
2173 typedef enum
2174 {
2203 
2247  amd_dbgapi_process_id_t process_id, amd_dbgapi_queue_id_t queue_id,
2248  amd_dbgapi_queue_info_t query, size_t value_size,
2249  void *value) AMD_DBGAPI_VERSION_0_24;
2250 
2256 typedef enum
2257 {
2316 
2320 typedef enum
2321 {
2335 
2339 typedef enum
2340 {
2369 
2416 amd_dbgapi_queue_list (amd_dbgapi_process_id_t process_id, size_t *queue_count,
2417  amd_dbgapi_queue_id_t **queues,
2419 
2427 
2481  amd_dbgapi_process_id_t process_id, amd_dbgapi_queue_id_t queue_id,
2482  amd_dbgapi_queue_packet_id_t *first_packet_id,
2483  amd_dbgapi_size_t *packets_byte_size,
2484  void **packets_bytes) AMD_DBGAPI_VERSION_0_24;
2485 
2504 typedef struct
2505 {
2506  uint64_t handle;
2508 
2512 #define AMD_DBGAPI_DISPATCH_NONE (amd_dbgapi_dispatch_id_t{ 0 })
2513 
2520 typedef enum
2521 {
2594 
2638  amd_dbgapi_process_id_t process_id, amd_dbgapi_dispatch_id_t dispatch_id,
2639  amd_dbgapi_dispatch_info_t query, size_t value_size,
2640  void *value) AMD_DBGAPI_VERSION_0_24;
2641 
2648 typedef enum
2649 {
2660 
2667 typedef enum
2668 {
2682 
2724  amd_dbgapi_process_id_t process_id, size_t *dispatch_count,
2725  amd_dbgapi_dispatch_id_t **dispatches,
2727 
2744 typedef struct
2745 {
2746  uint64_t handle;
2748 
2752 #define AMD_DBGAPI_WAVE_NONE (amd_dbgapi_wave_id_t{ 0 })
2753 
2760 typedef enum
2761 {
2848 
2896  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
2897  amd_dbgapi_wave_info_t query, size_t value_size,
2898  void *value) AMD_DBGAPI_VERSION_0_30;
2899 
2903 typedef enum
2904 {
2928 
2935 typedef enum
2936 {
3120 
3166 amd_dbgapi_wave_list (amd_dbgapi_process_id_t process_id, size_t *wave_count,
3167  amd_dbgapi_wave_id_t **waves,
3169 
3256 
3260 typedef enum
3261 {
3271 
3378  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
3380 
3474 typedef struct
3475 {
3476  uint64_t handle;
3478 
3482 #define AMD_DBGAPI_DISPLACED_STEPPING_NONE \
3483  (amd_dbgapi_displaced_stepping_id_t{ 0 })
3484 
3562  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
3563  const void *saved_instruction_bytes,
3564  amd_dbgapi_displaced_stepping_id_t *displaced_stepping)
3566 
3617  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
3618  amd_dbgapi_displaced_stepping_id_t displaced_stepping)
3620 
3654 typedef struct
3655 {
3656  uint64_t handle;
3658 
3662 #define AMD_DBGAPI_WATCHPOINT_NONE (amd_dbgapi_watchpoint_id_t{ 0 })
3663 
3670 typedef enum
3671 {
3689 
3696 typedef enum
3697 {
3717 
3724 typedef struct
3725 {
3726  size_t count;
3729 
3806  amd_dbgapi_process_id_t process_id, amd_dbgapi_global_address_t address,
3807  amd_dbgapi_size_t size, amd_dbgapi_watchpoint_kind_t kind,
3808  amd_dbgapi_watchpoint_id_t *watchpoint_id,
3809  amd_dbgapi_global_address_t *watchpoint_address,
3810  amd_dbgapi_size_t *watchpoint_size) AMD_DBGAPI_VERSION_0_31;
3811 
3837  amd_dbgapi_process_id_t process_id,
3839 
3861 typedef struct
3862 {
3863  uint64_t handle;
3865 
3869 #define AMD_DBGAPI_REGISTER_CLASS_NONE (amd_dbgapi_register_class_id_t{ 0 })
3870 
3878 typedef enum
3879 {
3888 
3934  amd_dbgapi_architecture_id_t architecture_id,
3935  amd_dbgapi_register_class_id_t register_class_id,
3936  amd_dbgapi_register_class_info_t query, size_t value_size,
3937  void *value) AMD_DBGAPI_VERSION_0_24;
3938 
3980  amd_dbgapi_architecture_id_t architecture_id, size_t *register_class_count,
3982 
3991 typedef struct
3992 {
3993  uint64_t handle;
3995 
3999 #define AMD_DBGAPI_REGISTER_NONE (amd_dbgapi_register_id_t{ 0 })
4000 
4010 typedef enum
4011 {
4052 
4097  amd_dbgapi_architecture_id_t architecture_id,
4099  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24;
4100 
4149  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4151  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24;
4152 
4198  amd_dbgapi_architecture_id_t architecture_id, size_t *register_count,
4200 
4248  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4249  size_t *register_count,
4251 
4283  amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_register,
4285 
4289 typedef enum
4290 {
4300 
4343  amd_dbgapi_architecture_id_t architecture_id,
4344  amd_dbgapi_register_id_t register_id,
4345  amd_dbgapi_register_class_id_t register_class_id,
4346  amd_dbgapi_register_class_state_t *register_class_state)
4348 
4411  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4412  amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t offset,
4413  amd_dbgapi_size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24;
4414 
4476  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4477  amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t offset,
4478  amd_dbgapi_size_t value_size, const void *value) AMD_DBGAPI_VERSION_0_24;
4479 
4533  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4534  amd_dbgapi_register_id_t register_id,
4535  amd_dbgapi_size_t register_count) AMD_DBGAPI_VERSION_0_24;
4536 
4576 typedef uint32_t amd_dbgapi_lane_id_t;
4577 
4581 #define AMD_DBGAPI_LANE_NONE ((amd_dbgapi_lane_id_t) (-1))
4582 
4596 typedef struct
4597 {
4598  uint64_t handle;
4600 
4604 #define AMD_DBGAPI_ADDRESS_CLASS_NONE (amd_dbgapi_address_class_id_t{ 0 })
4605 
4613 typedef enum
4614 {
4632 
4679  amd_dbgapi_architecture_id_t architecture_id,
4680  amd_dbgapi_address_class_id_t address_class_id,
4681  amd_dbgapi_address_class_info_t query, size_t value_size,
4682  void *value) AMD_DBGAPI_VERSION_0_24;
4683 
4726  amd_dbgapi_architecture_id_t architecture_id, size_t *address_class_count,
4728 
4763  amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_class,
4765 
4777 typedef struct
4778 {
4779  uint64_t handle;
4781 
4785 #define AMD_DBGAPI_ADDRESS_SPACE_NONE (amd_dbgapi_address_space_id_t{ 0 })
4786 
4793 #define AMD_DBGAPI_ADDRESS_SPACE_GLOBAL (amd_dbgapi_address_space_id_t{ 1 })
4794 
4798 typedef enum
4799 {
4816 
4824 typedef enum
4825 {
4849 
4893  amd_dbgapi_architecture_id_t architecture_id,
4894  amd_dbgapi_address_space_id_t address_space_id,
4895  amd_dbgapi_address_space_info_t query, size_t value_size,
4896  void *value) AMD_DBGAPI_VERSION_0_30;
4897 
4937  amd_dbgapi_architecture_id_t architecture_id, size_t *address_space_count,
4939 
4974  amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_space,
4976 
4980 typedef enum
4981 {
4991 
5034  amd_dbgapi_architecture_id_t architecture_id,
5035  amd_dbgapi_address_space_id_t address_space_id1,
5036  amd_dbgapi_address_space_id_t address_space_id2,
5037  amd_dbgapi_address_space_alias_t *address_space_alias)
5039 
5057 
5134  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5135  amd_dbgapi_lane_id_t lane_id,
5136  amd_dbgapi_address_space_id_t source_address_space_id,
5137  amd_dbgapi_segment_address_t source_segment_address,
5138  amd_dbgapi_address_space_id_t destination_address_space_id,
5139  amd_dbgapi_segment_address_t *destination_segment_address)
5141 
5146 typedef enum
5147 {
5159 
5224  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5225  amd_dbgapi_lane_id_t lane_id,
5226  amd_dbgapi_address_space_id_t address_space_id,
5227  amd_dbgapi_segment_address_t segment_address,
5228  amd_dbgapi_address_class_id_t address_class_id,
5229  amd_dbgapi_address_class_state_t *address_class_state)
5231 
5314  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5315  amd_dbgapi_lane_id_t lane_id,
5316  amd_dbgapi_address_space_id_t address_space_id,
5317  amd_dbgapi_segment_address_t segment_address,
5318  amd_dbgapi_size_t *value_size, void *value) AMD_DBGAPI_VERSION_0_30;
5319 
5402  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5403  amd_dbgapi_lane_id_t lane_id,
5404  amd_dbgapi_address_space_id_t address_space_id,
5405  amd_dbgapi_segment_address_t segment_address,
5406  amd_dbgapi_size_t *value_size, const void *value) AMD_DBGAPI_VERSION_0_30;
5407 
5426 typedef enum
5427 {
5439 
5479  amd_dbgapi_process_id_t process_id,
5481 
5513 typedef struct
5514 {
5515  uint64_t handle;
5517 
5521 #define AMD_DBGAPI_EVENT_NONE (amd_dbgapi_event_id_t{ 0 })
5522 
5526 typedef enum
5527 {
5627 
5658  amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t *event_id,
5660 
5664 typedef enum
5665 {
5681 
5688 typedef enum
5689 {
5719 
5764  amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t event_id,
5765  amd_dbgapi_event_info_t query, size_t value_size,
5766  void *value) AMD_DBGAPI_VERSION_0_30;
5767 
5798  amd_dbgapi_process_id_t process_id,
5800 
5822 typedef enum
5823 {
5846 
5867 
5892 typedef struct
5893 {
5894  uint64_t handle;
5896 
5900 typedef enum
5901 {
5911 
5915 #define AMD_DBGAPI_SHARED_LIBRARY_NONE (amd_dbgapi_shared_library_id_t{ 0 })
5916 
5960  amd_dbgapi_process_id_t process_id,
5961  amd_dbgapi_shared_library_id_t shared_library_id,
5962  amd_dbgapi_shared_library_state_t shared_library_state)
5964 
5977 typedef struct
5978 {
5979  uint64_t handle;
5981 
5985 #define AMD_DBGAPI_BREAKPOINT_NONE ((amd_dbgapi_breakpoint_id_t) (0))
5986 
5990 typedef enum
5991 {
6001 
6011 typedef struct amd_dbgapi_client_thread_s *amd_dbgapi_client_thread_id_t;
6012 
6057  amd_dbgapi_process_id_t process_id,
6058  amd_dbgapi_breakpoint_id_t breakpoint_id,
6059  amd_dbgapi_client_thread_id_t client_thread_id,
6061 
6069 {
6070 
6082  void *(*allocate_memory) (size_t byte_size);
6083 
6100  void (*deallocate_memory) (void *data);
6101 
6130  amd_dbgapi_client_process_id_t client_process_id,
6131  amd_dbgapi_os_pid_t *os_pid);
6132 
6168  amd_dbgapi_client_process_id_t client_process_id,
6169  const char *shared_library_name,
6170  amd_dbgapi_shared_library_id_t shared_library_id,
6171  amd_dbgapi_shared_library_state_t *shared_library_state);
6172 
6196  amd_dbgapi_client_process_id_t client_process_id,
6197  amd_dbgapi_shared_library_id_t shared_library_id);
6231  amd_dbgapi_client_process_id_t client_process_id,
6232  amd_dbgapi_shared_library_id_t shared_library_id,
6233  const char *symbol_name, amd_dbgapi_global_address_t *address);
6234 
6283  amd_dbgapi_client_process_id_t client_process_id,
6284  amd_dbgapi_shared_library_id_t shared_library_id,
6285  amd_dbgapi_global_address_t address,
6286  amd_dbgapi_breakpoint_id_t breakpoint_id);
6287 
6319  amd_dbgapi_client_process_id_t client_process_id,
6320  amd_dbgapi_breakpoint_id_t breakpoint_id);
6321 
6330  void (*log_message) (amd_dbgapi_log_level_t level, const char *message);
6331 };
6332 
6335 #if defined(__cplusplus)
6336 } /* extern "C" */
6337 #endif /* defined (__cplusplus) */
6338 
6339 #endif /* amd-dbgapi.h */
The wave stopped due to completing an instruction single-step.
Definition: amd-dbgapi.h:2963
Opaque agent handle.
Definition: amd-dbgapi.h:1977
Return the event kind.
Definition: amd-dbgapi.h:5694
uint64_t amd_dbgapi_global_address_t
Integral type used for a global virtual memory address in the inferior process.
Definition: amd-dbgapi.h:511
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:6100
uint64_t handle
Definition: amd-dbgapi.h:5515
uint64_t handle
Definition: amd-dbgapi.h:972
Return the dispatch grid size (work-items) in the X, Y, and Z dimensions.
Definition: amd-dbgapi.h:2572
The address space is only read the waves of a kernel dispatch.
Definition: amd-dbgapi.h:4814
A set of watchpoints.
Definition: amd-dbgapi.h:3724
The wave stopped after causing a hardware fatal halt.
Definition: amd-dbgapi.h:3104
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:6195
A wave waits for memory instructions to complete before executing further instructions.
Definition: amd-dbgapi.h:5437
The client process handle is invalid.
Definition: amd-dbgapi.h:777
If none of the bits are set, then amd_dbgapi_wave_stop stopped the wave.
Definition: amd-dbgapi.h:2941
A wave on the queue had a memory violation.
Definition: amd-dbgapi.h:2352
An invalid argument was given to the function.
Definition: amd-dbgapi.h:628
uint64_t handle
Definition: amd-dbgapi.h:3656
Opaque displaced stepping handle.
Definition: amd-dbgapi.h:3474
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:5832
There is a fence with system memory scope.
Definition: amd-dbgapi.h:2680
The segment address cannot be converted to the requested address space.
Definition: amd-dbgapi.h:757
The instruction causes the wave to stop executing for some period of time, before continuing executio...
Definition: amd-dbgapi.h:1316
amd_dbgapi_wave_creation_t
The kinds of wave creation supported by the hardware.
Definition: amd-dbgapi.h:1719
Queue is in a valid state.
Definition: amd-dbgapi.h:2325
Opaque queue handle.
Definition: amd-dbgapi.h:2157
A packet on the queue is invalid.
Definition: amd-dbgapi.h:2348
Watchpoints are not supported.
Definition: amd-dbgapi.h:3675
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:6282
Print fatal error and warning messages.
Definition: amd-dbgapi.h:5836
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:5673
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:1431
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:6167
Read access by load instructions.
Definition: amd-dbgapi.h:3701
pid_t amd_dbgapi_os_pid_t
Native operating system process id.
Definition: amd-dbgapi.h:541
The instruction classification is unknown.
Definition: amd-dbgapi.h:1233
The number of Shader Engines (SE) in the agent.
Definition: amd-dbgapi.h:2024
The instruction terminates the wave execution.
Definition: amd-dbgapi.h:1284
The number of lanes supported by the wave.
Definition: amd-dbgapi.h:2846
amd_dbgapi_breakpoint_action_t
The action to perform after reporting a breakpoint has been hit.
Definition: amd-dbgapi.h:5990
Return how watchpoints are shared between processes.
Definition: amd-dbgapi.h:1465
Return the architecture of this dispatch.
Definition: amd-dbgapi.h:2537
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:4621
There is a fence with agent memory scope.
Definition: amd-dbgapi.h:2676
The address space is read only.
Definition: amd-dbgapi.h:4809
amd_dbgapi_wave_state_t
The execution state of a wave.
Definition: amd-dbgapi.h:2903
uint32_t amd_dbgapi_lane_id_t
A wave lane handle.
Definition: amd-dbgapi.h:4576
Return the AMD GPU ELF EF_AMDGPU_MACH value corresponding to the architecture.
Definition: amd-dbgapi.h:1003
There is no fence.
Definition: amd-dbgapi.h:2672
The wave is running in single-step mode.
Definition: amd-dbgapi.h:2913
amd_dbgapi_changed_t
Indication of if a value has changed.
Definition: amd-dbgapi.h:521
The wave is stopped.
Definition: amd-dbgapi.h:704
The wave cannot be resumed.
Definition: amd-dbgapi.h:712
Opaque register class handle.
Definition: amd-dbgapi.h:3861
uint64_t handle
Definition: amd-dbgapi.h:1433
The segment address in the address space is a member of the source language address class...
Definition: amd-dbgapi.h:5157
amd_dbgapi_agent_info_t
Agent queries that are supported by amd_dbgapi_agent_get_info.
Definition: amd-dbgapi.h:1993
amd_dbgapi_dispatch_barrier_t
Dispatch barrier.
Definition: amd-dbgapi.h:2648
Return the size of the register in bytes.
Definition: amd-dbgapi.h:4028
A wave on the queue executed an instruction that caused an error.
Definition: amd-dbgapi.h:2362
The wave stopped due to triggering an enabled floating point invalid operation exception.
Definition: amd-dbgapi.h:3005
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:2990
No more watchpoints available.
Definition: amd-dbgapi.h:729
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:6129
Opaque hardware data watchpoint handle.
Definition: amd-dbgapi.h:3654
Return the wave of a AMD_DBGAPI_EVENT_KIND_WAVE_STOP or AMD_DBGAPI_EVENT_KIND_WAVE_COMMAND_TERMINATED...
Definition: amd-dbgapi.h:5700
uint64_t handle
Definition: amd-dbgapi.h:5979
Queue supports the AMD SDMA protocol.
Definition: amd-dbgapi.h:2310
Return the breakpoint of a AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME event.
Definition: amd-dbgapi.h:5705
Print no messages.
Definition: amd-dbgapi.h:5827
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:2814
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:5822
The watchpoint handle is invalid.
Definition: amd-dbgapi.h:725
No forward progress is needed.
Definition: amd-dbgapi.h:1679
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:620
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:2011
The wave stopped due to executing an trap instruction other than the AMD_DBGAPI_WAVE_STOP_REASON_DEBU...
Definition: amd-dbgapi.h:3055
The instruction enters the trap handler.
Definition: amd-dbgapi.h:1298
The function has executed successfully.
Definition: amd-dbgapi.h:588
The value has changed.
Definition: amd-dbgapi.h:530
Read-modify-write access by atomic instructions.
Definition: amd-dbgapi.h:3710
The instruction has some form of special behavior not covered by any of the other instruction kinds...
Definition: amd-dbgapi.h:1325
Return the dispatch workgroup size (work-items) in the X, Y, and Z dimensions.
Definition: amd-dbgapi.h:2567
The wave is not stopped.
Definition: amd-dbgapi.h:700
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:2320
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:672
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:721
The wave stopped due to triggering an enabled floating point underflow exception. ...
Definition: amd-dbgapi.h:2995
Return the dispatch barrier setting.
Definition: amd-dbgapi.h:2547
The shared library handle is invalid.
Definition: amd-dbgapi.h:765
Opaque shared library handle.
Definition: amd-dbgapi.h:5892
An event has occurred that is causing the queue to enter the error state.
Definition: amd-dbgapi.h:5625
Return the queue type.
Definition: amd-dbgapi.h:2189
amd_dbgapi_event_info_t
Event queries that are supported by amd_dbgapi_event_get_info.
Definition: amd-dbgapi.h:5688
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:6230
amd_dbgapi_runtime_state_t
Inferior runtime state.
Definition: amd-dbgapi.h:5664
The wave stopped due to executing a debug trap instruction.
Definition: amd-dbgapi.h:3025
amd_dbgapi_shared_library_state_t
The state of a shared library.
Definition: amd-dbgapi.h:5900
Resume execution.
Definition: amd-dbgapi.h:5995
A wave on the queue had an assert trap.
Definition: amd-dbgapi.h:2356
PCI vendor ID of the agent.
Definition: amd-dbgapi.h:2015
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:5566
Return the wave&#39;s state.
Definition: amd-dbgapi.h:2766
Return the dispatch release fence.
Definition: amd-dbgapi.h:2557
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:2975
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:2803
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:1245
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:769
Return the reason the wave stopped as a bit set.
Definition: amd-dbgapi.h:2773
The library is already initialized.
Definition: amd-dbgapi.h:636
amd_dbgapi_code_object_info_t
Code object queries that are supported by amd_dbgapi_code_object_get_info.
Definition: amd-dbgapi.h:1801
Return the agent to which this queue belongs.
Definition: amd-dbgapi.h:2179
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:2339
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:568
#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:1260
#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:5550
Return the byte size of an address in the address space.
Definition: amd-dbgapi.h:4837
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:2000
The lane handle is invalid.
Definition: amd-dbgapi.h:741
The wave stopped due to triggering a data watchpoint.
Definition: amd-dbgapi.h:2959
The wave handle is invalid.
Definition: amd-dbgapi.h:696
Opaque code object handle.
Definition: amd-dbgapi.h:1785
#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:5146
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:4613
uint64_t handle
Definition: amd-dbgapi.h:5894
uint64_t handle
Definition: amd-dbgapi.h:3476
Return the address space access.
Definition: amd-dbgapi.h:4847
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:733
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:4289
A reserved value only present to ensure that the underlying representation of this enumeration type i...
Definition: amd-dbgapi.h:3118
The instruction unconditionally halts the wave.
Definition: amd-dbgapi.h:1303
Return the number of data watchpoints supported by the process.
Definition: amd-dbgapi.h:1459
uint64_t handle
Definition: amd-dbgapi.h:3863
amd_dbgapi_watchpoint_kind_t
Watchpoint memory access kinds.
Definition: amd-dbgapi.h:3696
The notifier for the process that indicates if pending events are available.
Definition: amd-dbgapi.h:1453
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:6330
Return the dispatch acquire fence.
Definition: amd-dbgapi.h:2552
Opaque event handle.
Definition: amd-dbgapi.h:5513
The runtime support in the inferior has been loaded or unloaded.
Definition: amd-dbgapi.h:5589
Normal progress is needed.
Definition: amd-dbgapi.h:1655
amd_dbgapi_watchpoint_id_t * watchpoint_ids
Definition: amd-dbgapi.h:3727
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:2797
amd_dbgapi_event_kind_t
The event kinds.
Definition: amd-dbgapi.h:5526
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:3886
The instruction unconditionally branches to an address held in a pair of source registers and the add...
Definition: amd-dbgapi.h:1279
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:4985
The wave has an outstanding stop request.
Definition: amd-dbgapi.h:708
The library is not initialized.
Definition: amd-dbgapi.h:640
The wave stopped due to triggering an enabled floating point input denormal exception.
Definition: amd-dbgapi.h:2980
The symbol was not found.
Definition: amd-dbgapi.h:790
Write access by store instructions or read-modify-write access by atomic instructions.
Definition: amd-dbgapi.h:3706
amd_dbgapi_address_space_alias_t
Indication of whether addresses in two address spaces may alias.
Definition: amd-dbgapi.h:4980
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:1038
The wave stopped due to detecting an unrecoverable ECC error.
Definition: amd-dbgapi.h:3095
amd_dbgapi_address_space_access_t
Indication of how the address space is accessed.
Definition: amd-dbgapi.h:4798
Queue supports the AMD PM4 protocol.
Definition: amd-dbgapi.h:2306
The bytes being disassembled are not a legal instruction.
Definition: amd-dbgapi.h:668
uint64_t handle
Definition: amd-dbgapi.h:2159
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:5056
Dispatch has a barrier.
Definition: amd-dbgapi.h:2658
Return the breakpoint instruction for the architecture.
Definition: amd-dbgapi.h:1027
The value has not changed.
Definition: amd-dbgapi.h:526
The instruction conditionally branches to a literal address.
Definition: amd-dbgapi.h:1252
The URI name of the ELF shared object from which the code object was loaded.
Definition: amd-dbgapi.h:1851
Opaque address space handle.
Definition: amd-dbgapi.h:4777
The ELF AMD GPU machine value is invalid or unsupported.
Definition: amd-dbgapi.h:676
The difference between the address in the ELF shared object and the address the code object is loaded...
Definition: amd-dbgapi.h:1857
The address space supports all accesses.
Definition: amd-dbgapi.h:4804
The register handle is invalid.
Definition: amd-dbgapi.h:737
amd_dbgapi_queue_type_t
Queue type.
Definition: amd-dbgapi.h:2256
Unknown queue type.
Definition: amd-dbgapi.h:2261
Memory instructions execute normally and a wave does not wait for the memory access to complete...
Definition: amd-dbgapi.h:5432
amd_dbgapi_process_info_t
Process queries that are supported by amd_dbgapi_process_get_info.
Definition: amd-dbgapi.h:1447
uint64_t handle
Definition: amd-dbgapi.h:2506
The wave stopped due to triggering an enabled floating point inexact exception.
Definition: amd-dbgapi.h:3000
Queue supports the HSA kernel dispatch with multiple producers protocol.
Definition: amd-dbgapi.h:2276
The register is not a member of the register class.
Definition: amd-dbgapi.h:4294
Maximum number of waves possible in a SIMD.
Definition: amd-dbgapi.h:2039
The address class handle is invalid.
Definition: amd-dbgapi.h:745
A wave has stopped.
Definition: amd-dbgapi.h:5535
amd_dbgapi_architecture_info_t
Architecture queries that are supported by amd_dbgapi_architecture_get_info.
Definition: amd-dbgapi.h:987
Return the queue packet ID of the dispatch packet that initiated the dispatch.
Definition: amd-dbgapi.h:2542
Opaque register handle.
Definition: amd-dbgapi.h:3991
amd_dbgapi_dispatch_fence_scope_t
Dispatch memory fence scope.
Definition: amd-dbgapi.h:2667
Addresses in the address spaces may alias.
Definition: amd-dbgapi.h:4989
The watchpoints of a process are shared between all processes.
Definition: amd-dbgapi.h:3687
The event handle is invalid.
Definition: amd-dbgapi.h:761
The wave stopped due to triggering an enabled integer divide by zero exception.
Definition: amd-dbgapi.h:3010
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:1724
Return the dispatch group segment size in bytes.
Definition: amd-dbgapi.h:2582
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:4832
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:995
Return the agent to which this queue belongs.
Definition: amd-dbgapi.h:2532
The displaced stepping handle is invalid.
Definition: amd-dbgapi.h:716
Resume execution in in single step mode.
Definition: amd-dbgapi.h:3269
A fatal error has occurred.
Definition: amd-dbgapi.h:614
amd_dbgapi_queue_info_t
Queue queries that are supported by amd_dbgapi_queue_get_info.
Definition: amd-dbgapi.h:2173
The runtime has been loaded and debugging is supported by the library.
Definition: amd-dbgapi.h:5669
The segment address in the address space is not a member of the source language address class...
Definition: amd-dbgapi.h:5152
The wave stopped with an XNACK error.
Definition: amd-dbgapi.h:3113
uint64_t amd_dbgapi_queue_packet_id_t
Queue packet ID.
Definition: amd-dbgapi.h:2426
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:4010
uint64_t handle
Definition: amd-dbgapi.h:1979
size_t count
Definition: amd-dbgapi.h:3726
The watchpoints are not shared across processes.
Definition: amd-dbgapi.h:3681
amd_dbgapi_register_class_info_t
Register class queries that are supported by amd_dbgapi_architecture_register_class_get_info.
Definition: amd-dbgapi.h:3878
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:2809
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_31
Set a hardware data watchpoint.
Request to resume a host breakpoint.
Definition: amd-dbgapi.h:5579
The process handle is invalid.
Definition: amd-dbgapi.h:680
The wave stopped due to triggering a memory violation.
Definition: amd-dbgapi.h:3070
Queue supports HSA kernel dispatch with multiple producers protocol that supports cooperative dispatc...
Definition: amd-dbgapi.h:2302
Return the architecture specific address space that is used to implement a pointer or reference to th...
Definition: amd-dbgapi.h:4630
The wave stopped due to executing an assert trap instruction.
Definition: amd-dbgapi.h:3043
The instruction unconditionally branches to a literal address and the address of the following instru...
Definition: amd-dbgapi.h:1269
The address space handle is invalid.
Definition: amd-dbgapi.h:749
Print fatal error, warning, and info messages.
Definition: amd-dbgapi.h:5840
Number of compute units available in the agent.
Definition: amd-dbgapi.h:2029
Opaque dispatch handle.
Definition: amd-dbgapi.h:2504
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:2292
Return the client thread of a AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME event.
Definition: amd-dbgapi.h:5710
The instruction executes sequentially.
Definition: amd-dbgapi.h:1239
Return the queue to which this dispatch belongs.
Definition: amd-dbgapi.h:2526
The wave stopped due to triggering an enabled floating point divide by zero exception.
Definition: amd-dbgapi.h:2985
The runtime has been loaded but there is a restriction error that prevents debugging the process...
Definition: amd-dbgapi.h:5679
Return if the runtime loaded in the inferior is supported by the library for a AMD_DBGAPI_EVENT_KIND_...
Definition: amd-dbgapi.h:5717
Callbacks that the client of the library must provide.
Definition: amd-dbgapi.h:6068
The shared library is not currently loaded.
Definition: amd-dbgapi.h:786
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:656
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:1019
Return the dispatch private segment size in bytes.
Definition: amd-dbgapi.h:2577
Opaque source language address class handle.
Definition: amd-dbgapi.h:4596
amd_dbgapi_progress_t
The kinds of progress supported by the library.
Definition: amd-dbgapi.h:1648
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:2592
Return the reason the queue is in error as a bit set.
Definition: amd-dbgapi.h:2201
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:5426
uint64_t handle
Definition: amd-dbgapi.h:1787
Opaque wave handle.
Definition: amd-dbgapi.h:2744
Return the number of bytes to subtract from the PC after stopping due to a breakpoint instruction to ...
Definition: amd-dbgapi.h:1033
uint64_t handle
Definition: amd-dbgapi.h:2746
Return the largest instruction size in bytes for the architecture.
Definition: amd-dbgapi.h:1008
amd_dbgapi_address_space_info_t
Address space queries that are supported by amd_dbgapi_address_space_get_info.
Definition: amd-dbgapi.h:4824
Return the minimum instruction alignment in bytes for the architecture.
Definition: amd-dbgapi.h:1014
The native operating system process associated with a client process has exited.
Definition: amd-dbgapi.h:782
Number of SIMDs per compute unit (CU).
Definition: amd-dbgapi.h:2034
The instruction performs some kind of execution barrier which may result in the wave being halted unt...
Definition: amd-dbgapi.h:1310
Stop wave creation prevents new waves from being created.
Definition: amd-dbgapi.h:1728
The wave is running.
Definition: amd-dbgapi.h:2908
No event.
Definition: amd-dbgapi.h:5531
Resume normal execution.
Definition: amd-dbgapi.h:3265
The operation is not supported.
Definition: amd-dbgapi.h:624
uint64_t handle
Definition: amd-dbgapi.h:3993
uint64_t handle
Definition: amd-dbgapi.h:4779
Return the dispatch grid dimensionality.
Definition: amd-dbgapi.h:2562
uint64_t amd_dbgapi_size_t
Integral type used for sizes, including memory allocations, in the inferior.
Definition: amd-dbgapi.h:516
Return the NULL segment address value in the address space.
Definition: amd-dbgapi.h:4842
The shared library is loaded.
Definition: amd-dbgapi.h:5905
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:2314
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:2587
Return the architecture of this queue.
Definition: amd-dbgapi.h:2184
amd_dbgapi_wave_stop_reason_t
A bit mask of the reasons that a wave stopped.
Definition: amd-dbgapi.h:2935
The register is a member of the register class.
Definition: amd-dbgapi.h:4298
Return the architecture of this agent.
Definition: amd-dbgapi.h:2005
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:773
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:2947
amd_dbgapi_resume_mode_t
The mode in which to resuming the execution of a wave.
Definition: amd-dbgapi.h:3260
amd_dbgapi_status_t
AMD debugger API status codes.
Definition: amd-dbgapi.h:583
Return the current program counter value of the wave.
Definition: amd-dbgapi.h:2820
The agent handle is invalid.
Definition: amd-dbgapi.h:684
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:664
A reserved value only present to ensure that the underlying representation of this enumeration type i...
Definition: amd-dbgapi.h:2367
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:2834
Leave execution halted.
Definition: amd-dbgapi.h:5999
Opaque architecture handle.
Definition: amd-dbgapi.h:970
If none of the bits are set, then the queue is not in the error state.
Definition: amd-dbgapi.h:2344
amd_dbgapi_wave_info_t
Wave queries that are supported by amd_dbgapi_wave_get_info.
Definition: amd-dbgapi.h:2760
uint64_t handle
Definition: amd-dbgapi.h:4598
The address is not within the shared library.
Definition: amd-dbgapi.h:794
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:2841
#define AMD_DBGAPI_VERSION_0_31
The function was introduced in version 0.31 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:475
Return the queue state.
Definition: amd-dbgapi.h:2194
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:2926
The wave stopped due to executing an illegal instruction.
Definition: amd-dbgapi.h:3080
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:2333
struct amd_dbgapi_symbolizer_id_s * amd_dbgapi_symbolizer_id_t
Opaque client symbolizer handle.
Definition: amd-dbgapi.h:1121
An error occurred while trying to access memory in the inferior.
Definition: amd-dbgapi.h:753
A generic error has occurred.
Definition: amd-dbgapi.h:592
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:660
struct amd_dbgapi_client_process_s * amd_dbgapi_client_process_id_t
Opaque client process handle.
Definition: amd-dbgapi.h:1419
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:2653
amd_dbgapi_watchpoint_share_kind_t
The way watchpoints are shared between processes.
Definition: amd-dbgapi.h:3670
The dispatch handle is invalid.
Definition: amd-dbgapi.h:692
amd_dbgapi_instruction_kind_t
The kinds of instruction classifications.
Definition: amd-dbgapi.h:1227
Read, write, or read-modify-write access by load, store, or atomic instructions.
Definition: amd-dbgapi.h:3715
The shared library is unloaded.
Definition: amd-dbgapi.h:5909
Return the watchpoint(s) the wave triggered.
Definition: amd-dbgapi.h:2786
struct amd_dbgapi_client_thread_s * amd_dbgapi_client_thread_id_t
Opaque client thread handle.
Definition: amd-dbgapi.h:6011
Return the register name.
Definition: amd-dbgapi.h:4018
Return if the architectures of all the agents of a process support controlling memory precision...
Definition: amd-dbgapi.h:1471
Print fatal error, warning, info, and verbose messages.
Definition: amd-dbgapi.h:5844
The queue handle is invalid.
Definition: amd-dbgapi.h:688
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:6318
PCI device ID of the agent.
Definition: amd-dbgapi.h:2019
Return the register type as a C style type string.
Definition: amd-dbgapi.h:4050
An invalid size was given to the function.
Definition: amd-dbgapi.h:632
amd_dbgapi_dispatch_info_t
Dispatch queries that are supported by amd_dbgapi_dispatch_get_info.
Definition: amd-dbgapi.h:2520
Opaque breakpoint handle.
Definition: amd-dbgapi.h:5977
Return the current execution mask of the wave.
Definition: amd-dbgapi.h:2828
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.