AMD_DBGAPI  0.36.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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 
396 #ifndef AMD_DBGAPI_H
397 #define AMD_DBGAPI_H 1
398 
399 /* Placeholder for calling convention and import/export macros */
400 #if !defined(AMD_DBGAPI_CALL)
401 #define AMD_DBGAPI_CALL
402 #endif /* !defined (AMD_DBGAPI_CALL) */
403 
404 #if !defined(AMD_DBGAPI_EXPORT_DECORATOR)
405 #if defined(__GNUC__)
406 #define AMD_DBGAPI_EXPORT_DECORATOR __attribute__ ((visibility ("default")))
407 #elif defined(_MSC_VER)
408 #define AMD_DBGAPI_EXPORT_DECORATOR __declspec(dllexport)
409 #endif /* defined (_MSC_VER) */
410 #endif /* !defined (AMD_DBGAPI_EXPORT_DECORATOR) */
411 
412 #if !defined(AMD_DBGAPI_IMPORT_DECORATOR)
413 #if defined(__GNUC__)
414 #define AMD_DBGAPI_IMPORT_DECORATOR
415 #elif defined(_MSC_VER)
416 #define AMD_DBGAPI_IMPORT_DECORATOR __declspec(dllimport)
417 #endif /* defined (_MSC_VER) */
418 #endif /* !defined (AMD_DBGAPI_IMPORT_DECORATOR) */
419 
420 #define AMD_DBGAPI_EXPORT AMD_DBGAPI_EXPORT_DECORATOR AMD_DBGAPI_CALL
421 #define AMD_DBGAPI_IMPORT AMD_DBGAPI_IMPORT_DECORATOR AMD_DBGAPI_CALL
422 
423 #if !defined(AMD_DBGAPI)
424 #if defined(AMD_DBGAPI_EXPORTS)
425 #define AMD_DBGAPI AMD_DBGAPI_EXPORT
426 #else /* !defined (AMD_DBGAPI_EXPORTS) */
427 #define AMD_DBGAPI AMD_DBGAPI_IMPORT
428 #endif /* !defined (AMD_DBGAPI_EXPORTS) */
429 #endif /* !defined (AMD_DBGAPI) */
430 
431 #if defined(__cplusplus)
432 extern "C" {
433 #endif /* defined (__cplusplus) */
434 
435 #if defined(__linux__)
436 #include <sys/types.h>
437 #endif /* __linux__ */
438 
439 #include <stddef.h>
440 #include <stdint.h>
441 
461 #define AMD_DBGAPI_VERSION_0_24
462 
467 #define AMD_DBGAPI_VERSION_0_30
468 
473 #define AMD_DBGAPI_VERSION_0_36
474 
482 
510 
514 typedef uint64_t amd_dbgapi_size_t;
515 
519 typedef enum
520 {
530 
538 #if defined(__linux__)
540 #endif /* __linux__ */
541 
565 #if defined(__linux__)
567 #endif /* __linux__ */
568 
576 #if defined(__linux__)
577 typedef uint64_t amd_dbgapi_os_agent_id_t;
578 #endif /* __linux__ */
579 
586 #if defined(__linux__)
587 typedef uint64_t amd_dbgapi_os_queue_id_t;
588 #endif /* __linux__ */
589 
598 #if defined(__linux__)
600 #endif /* __linux__ */
601 
609 #if defined(__linux__)
610 typedef enum
611 {
670 #endif /* __linux__ */
671 
684 typedef enum
685 {
897 
915  amd_dbgapi_status_t status,
916  const char **status_string) AMD_DBGAPI_VERSION_0_24;
917 
941 #define AMD_DBGAPI_VERSION_MAJOR 0
942 
947 #define AMD_DBGAPI_VERSION_MINOR 36
948 
963  uint32_t *major, uint32_t *minor, uint32_t *patch) AMD_DBGAPI_VERSION_0_24;
964 
973 const char AMD_DBGAPI *
974 amd_dbgapi_get_build_name (void) AMD_DBGAPI_VERSION_0_24;
975 
1023 
1049  AMD_DBGAPI_VERSION_0_24;
1050 
1071 typedef struct
1072 {
1073  uint64_t handle;
1075 
1079 #define AMD_DBGAPI_ARCHITECTURE_NONE (amd_dbgapi_architecture_id_t{ 0 })
1080 
1088 typedef enum
1089 {
1141 
1180  amd_dbgapi_architecture_id_t architecture_id,
1181  amd_dbgapi_architecture_info_t query, size_t value_size,
1182  void *value) AMD_DBGAPI_VERSION_0_30;
1183 
1213  uint32_t elf_amdgpu_machine,
1215 
1222 typedef struct amd_dbgapi_symbolizer_id_s *amd_dbgapi_symbolizer_id_t;
1223 
1316  amd_dbgapi_architecture_id_t architecture_id,
1317  amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size,
1318  const void *memory, char **instruction_text,
1319  amd_dbgapi_symbolizer_id_t symbolizer_id,
1320  amd_dbgapi_status_t (*symbolizer) (
1321  amd_dbgapi_symbolizer_id_t symbolizer_id,
1322  amd_dbgapi_global_address_t address,
1323  char **symbol_text)) AMD_DBGAPI_VERSION_0_30;
1324 
1328 typedef enum
1329 {
1428 
1494  amd_dbgapi_architecture_id_t architecture_id,
1495  amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size,
1496  const void *memory, amd_dbgapi_instruction_kind_t *instruction_kind,
1497  void **instruction_properties) AMD_DBGAPI_VERSION_0_24;
1498 
1520 typedef struct amd_dbgapi_client_process_s *amd_dbgapi_client_process_id_t;
1521 
1532 typedef struct
1533 {
1534  uint64_t handle;
1536 
1540 #define AMD_DBGAPI_PROCESS_NONE (amd_dbgapi_process_id_t{ 0 })
1541 
1548 typedef enum
1549 {
1579 
1619  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_36;
1620 
1690  amd_dbgapi_client_process_id_t client_process_id,
1692 
1739 
1754 typedef enum
1755 {
1787 
1811  amd_dbgapi_process_id_t process_id,
1813 
1825 typedef enum
1826 {
1836 
1862  amd_dbgapi_process_id_t process_id,
1864 
1891 typedef struct
1892 {
1893  uint64_t handle;
1895 
1899 #define AMD_DBGAPI_CODE_OBJECT_NONE (amd_dbgapi_code_object_id_t{ 0 })
1900 
1907 typedef enum
1908 {
1965 
2009  amd_dbgapi_process_id_t process_id,
2010  amd_dbgapi_code_object_id_t code_object_id,
2011  amd_dbgapi_code_object_info_t query, size_t value_size,
2012  void *value) AMD_DBGAPI_VERSION_0_24;
2013 
2063  amd_dbgapi_process_id_t process_id, size_t *code_object_count,
2064  amd_dbgapi_code_object_id_t **code_objects,
2066 
2083 typedef struct
2084 {
2085  uint64_t handle;
2087 
2091 #define AMD_DBGAPI_AGENT_NONE (amd_dbgapi_agent_id_t{ 0 })
2092 
2099 typedef enum
2100 {
2142 
2186  amd_dbgapi_process_id_t process_id, amd_dbgapi_agent_id_t agent_id,
2187  amd_dbgapi_agent_info_t query, size_t value_size,
2188  void *value) AMD_DBGAPI_VERSION_0_36;
2189 
2236 amd_dbgapi_agent_list (amd_dbgapi_process_id_t process_id, size_t *agent_count,
2237  amd_dbgapi_agent_id_t **agents,
2239 
2258 typedef struct
2259 {
2260  uint64_t handle;
2262 
2266 #define AMD_DBGAPI_QUEUE_NONE (amd_dbgapi_queue_id_t{ 0 })
2267 
2274 typedef enum
2275 {
2319 
2363  amd_dbgapi_process_id_t process_id, amd_dbgapi_queue_id_t queue_id,
2364  amd_dbgapi_queue_info_t query, size_t value_size,
2365  void *value) AMD_DBGAPI_VERSION_0_36;
2366 
2370 typedef enum
2371 {
2385 
2389 typedef enum
2390 {
2419 
2466 amd_dbgapi_queue_list (amd_dbgapi_process_id_t process_id, size_t *queue_count,
2467  amd_dbgapi_queue_id_t **queues,
2469 
2540  amd_dbgapi_process_id_t process_id, amd_dbgapi_queue_id_t queue_id,
2541  amd_dbgapi_os_queue_packet_id_t *read_packet_id, amd_dbgapi_os_queue_packet_id_t *write_packet_id,
2542  size_t *packets_byte_size, void **packets_bytes) AMD_DBGAPI_VERSION_0_36;
2543 
2562 typedef struct
2563 {
2564  uint64_t handle;
2566 
2570 #define AMD_DBGAPI_DISPATCH_NONE (amd_dbgapi_dispatch_id_t{ 0 })
2571 
2578 typedef enum
2579 {
2668 
2715  amd_dbgapi_process_id_t process_id, amd_dbgapi_dispatch_id_t dispatch_id,
2716  amd_dbgapi_dispatch_info_t query, size_t value_size,
2717  void *value) AMD_DBGAPI_VERSION_0_36;
2718 
2725 typedef enum
2726 {
2737 
2744 typedef enum
2745 {
2759 
2801  amd_dbgapi_process_id_t process_id, size_t *dispatch_count,
2802  amd_dbgapi_dispatch_id_t **dispatches,
2804 
2821 typedef struct
2822 {
2823  uint64_t handle;
2825 
2829 #define AMD_DBGAPI_WAVE_NONE (amd_dbgapi_wave_id_t{ 0 })
2830 
2837 typedef enum
2838 {
2925 
2973  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
2974  amd_dbgapi_wave_info_t query, size_t value_size,
2975  void *value) AMD_DBGAPI_VERSION_0_30;
2976 
2980 typedef enum
2981 {
3005 
3012 typedef enum
3013 {
3197 
3243 amd_dbgapi_wave_list (amd_dbgapi_process_id_t process_id, size_t *wave_count,
3244  amd_dbgapi_wave_id_t **waves,
3246 
3333 
3337 typedef enum
3338 {
3348 
3455  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
3457 
3551 typedef struct
3552 {
3553  uint64_t handle;
3555 
3559 #define AMD_DBGAPI_DISPLACED_STEPPING_NONE \
3560  (amd_dbgapi_displaced_stepping_id_t{ 0 })
3561 
3639  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
3640  const void *saved_instruction_bytes,
3641  amd_dbgapi_displaced_stepping_id_t *displaced_stepping)
3643 
3694  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
3695  amd_dbgapi_displaced_stepping_id_t displaced_stepping)
3697 
3731 typedef struct
3732 {
3733  uint64_t handle;
3735 
3739 #define AMD_DBGAPI_WATCHPOINT_NONE (amd_dbgapi_watchpoint_id_t{ 0 })
3740 
3747 typedef enum
3748 {
3766 
3773 typedef enum
3774 {
3794 
3801 typedef struct
3802 {
3803  size_t count;
3806 
3883  amd_dbgapi_process_id_t process_id, amd_dbgapi_global_address_t address,
3884  amd_dbgapi_size_t size, amd_dbgapi_watchpoint_kind_t kind,
3885  amd_dbgapi_watchpoint_id_t *watchpoint_id,
3886  amd_dbgapi_global_address_t *watchpoint_address,
3887  amd_dbgapi_size_t *watchpoint_size) AMD_DBGAPI_VERSION_0_36;
3888 
3914  amd_dbgapi_process_id_t process_id,
3916 
3938 typedef struct
3939 {
3940  uint64_t handle;
3942 
3946 #define AMD_DBGAPI_REGISTER_CLASS_NONE (amd_dbgapi_register_class_id_t{ 0 })
3947 
3955 typedef enum
3956 {
3965 
4011  amd_dbgapi_architecture_id_t architecture_id,
4012  amd_dbgapi_register_class_id_t register_class_id,
4013  amd_dbgapi_register_class_info_t query, size_t value_size,
4014  void *value) AMD_DBGAPI_VERSION_0_24;
4015 
4057  amd_dbgapi_architecture_id_t architecture_id, size_t *register_class_count,
4059 
4068 typedef struct
4069 {
4070  uint64_t handle;
4072 
4076 #define AMD_DBGAPI_REGISTER_NONE (amd_dbgapi_register_id_t{ 0 })
4077 
4087 typedef enum
4088 {
4129 
4174  amd_dbgapi_architecture_id_t architecture_id,
4176  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24;
4177 
4226  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4228  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24;
4229 
4275  amd_dbgapi_architecture_id_t architecture_id, size_t *register_count,
4277 
4325  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4326  size_t *register_count,
4328 
4360  amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_register,
4362 
4366 typedef enum
4367 {
4377 
4420  amd_dbgapi_architecture_id_t architecture_id,
4421  amd_dbgapi_register_id_t register_id,
4422  amd_dbgapi_register_class_id_t register_class_id,
4423  amd_dbgapi_register_class_state_t *register_class_state)
4425 
4488  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4489  amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t offset,
4490  amd_dbgapi_size_t value_size, void *value) AMD_DBGAPI_VERSION_0_24;
4491 
4553  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4554  amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t offset,
4555  amd_dbgapi_size_t value_size, const void *value) AMD_DBGAPI_VERSION_0_24;
4556 
4610  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
4611  amd_dbgapi_register_id_t register_id,
4612  amd_dbgapi_size_t register_count) AMD_DBGAPI_VERSION_0_24;
4613 
4653 typedef uint32_t amd_dbgapi_lane_id_t;
4654 
4658 #define AMD_DBGAPI_LANE_NONE ((amd_dbgapi_lane_id_t) (-1))
4659 
4673 typedef struct
4674 {
4675  uint64_t handle;
4677 
4681 #define AMD_DBGAPI_ADDRESS_CLASS_NONE (amd_dbgapi_address_class_id_t{ 0 })
4682 
4690 typedef enum
4691 {
4709 
4756  amd_dbgapi_architecture_id_t architecture_id,
4757  amd_dbgapi_address_class_id_t address_class_id,
4758  amd_dbgapi_address_class_info_t query, size_t value_size,
4759  void *value) AMD_DBGAPI_VERSION_0_24;
4760 
4803  amd_dbgapi_architecture_id_t architecture_id, size_t *address_class_count,
4805 
4840  amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_class,
4842 
4854 typedef struct
4855 {
4856  uint64_t handle;
4858 
4862 #define AMD_DBGAPI_ADDRESS_SPACE_NONE (amd_dbgapi_address_space_id_t{ 0 })
4863 
4870 #define AMD_DBGAPI_ADDRESS_SPACE_GLOBAL (amd_dbgapi_address_space_id_t{ 1 })
4871 
4875 typedef enum
4876 {
4893 
4901 typedef enum
4902 {
4926 
4970  amd_dbgapi_architecture_id_t architecture_id,
4971  amd_dbgapi_address_space_id_t address_space_id,
4972  amd_dbgapi_address_space_info_t query, size_t value_size,
4973  void *value) AMD_DBGAPI_VERSION_0_30;
4974 
5014  amd_dbgapi_architecture_id_t architecture_id, size_t *address_space_count,
5016 
5051  amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_space,
5053 
5057 typedef enum
5058 {
5068 
5111  amd_dbgapi_architecture_id_t architecture_id,
5112  amd_dbgapi_address_space_id_t address_space_id1,
5113  amd_dbgapi_address_space_id_t address_space_id2,
5114  amd_dbgapi_address_space_alias_t *address_space_alias)
5116 
5134 
5211  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5212  amd_dbgapi_lane_id_t lane_id,
5213  amd_dbgapi_address_space_id_t source_address_space_id,
5214  amd_dbgapi_segment_address_t source_segment_address,
5215  amd_dbgapi_address_space_id_t destination_address_space_id,
5216  amd_dbgapi_segment_address_t *destination_segment_address)
5218 
5223 typedef enum
5224 {
5236 
5301  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5302  amd_dbgapi_lane_id_t lane_id,
5303  amd_dbgapi_address_space_id_t address_space_id,
5304  amd_dbgapi_segment_address_t segment_address,
5305  amd_dbgapi_address_class_id_t address_class_id,
5306  amd_dbgapi_address_class_state_t *address_class_state)
5308 
5391  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5392  amd_dbgapi_lane_id_t lane_id,
5393  amd_dbgapi_address_space_id_t address_space_id,
5394  amd_dbgapi_segment_address_t segment_address,
5395  amd_dbgapi_size_t *value_size, void *value) AMD_DBGAPI_VERSION_0_30;
5396 
5479  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5480  amd_dbgapi_lane_id_t lane_id,
5481  amd_dbgapi_address_space_id_t address_space_id,
5482  amd_dbgapi_segment_address_t segment_address,
5483  amd_dbgapi_size_t *value_size, const void *value) AMD_DBGAPI_VERSION_0_30;
5484 
5503 typedef enum
5504 {
5516 
5556  amd_dbgapi_process_id_t process_id,
5558 
5590 typedef struct
5591 {
5592  uint64_t handle;
5594 
5598 #define AMD_DBGAPI_EVENT_NONE (amd_dbgapi_event_id_t{ 0 })
5599 
5603 typedef enum
5604 {
5704 
5735  amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t *event_id,
5737 
5741 typedef enum
5742 {
5758 
5765 typedef enum
5766 {
5796 
5841  amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t event_id,
5842  amd_dbgapi_event_info_t query, size_t value_size,
5843  void *value) AMD_DBGAPI_VERSION_0_30;
5844 
5875  amd_dbgapi_process_id_t process_id,
5877 
5899 typedef enum
5900 {
5923 
5944 
5969 typedef struct
5970 {
5971  uint64_t handle;
5973 
5977 typedef enum
5978 {
5988 
5992 #define AMD_DBGAPI_SHARED_LIBRARY_NONE (amd_dbgapi_shared_library_id_t{ 0 })
5993 
6037  amd_dbgapi_process_id_t process_id,
6038  amd_dbgapi_shared_library_id_t shared_library_id,
6039  amd_dbgapi_shared_library_state_t shared_library_state)
6041 
6054 typedef struct
6055 {
6056  uint64_t handle;
6058 
6062 #define AMD_DBGAPI_BREAKPOINT_NONE ((amd_dbgapi_breakpoint_id_t) (0))
6063 
6067 typedef enum
6068 {
6078 
6088 typedef struct amd_dbgapi_client_thread_s *amd_dbgapi_client_thread_id_t;
6089 
6134  amd_dbgapi_process_id_t process_id,
6135  amd_dbgapi_breakpoint_id_t breakpoint_id,
6136  amd_dbgapi_client_thread_id_t client_thread_id,
6138 
6146 {
6147 
6159  void *(*allocate_memory) (size_t byte_size);
6160 
6177  void (*deallocate_memory) (void *data);
6178 
6207  amd_dbgapi_client_process_id_t client_process_id,
6208  amd_dbgapi_os_process_id_t *os_pid);
6209 
6245  amd_dbgapi_client_process_id_t client_process_id,
6246  const char *shared_library_name,
6247  amd_dbgapi_shared_library_id_t shared_library_id,
6248  amd_dbgapi_shared_library_state_t *shared_library_state);
6249 
6273  amd_dbgapi_client_process_id_t client_process_id,
6274  amd_dbgapi_shared_library_id_t shared_library_id);
6308  amd_dbgapi_client_process_id_t client_process_id,
6309  amd_dbgapi_shared_library_id_t shared_library_id,
6310  const char *symbol_name, amd_dbgapi_global_address_t *address);
6311 
6360  amd_dbgapi_client_process_id_t client_process_id,
6361  amd_dbgapi_shared_library_id_t shared_library_id,
6362  amd_dbgapi_global_address_t address,
6363  amd_dbgapi_breakpoint_id_t breakpoint_id);
6364 
6396  amd_dbgapi_client_process_id_t client_process_id,
6397  amd_dbgapi_breakpoint_id_t breakpoint_id);
6398 
6407  void (*log_message) (amd_dbgapi_log_level_t level, const char *message);
6408 };
6409 
6412 #if defined(__cplusplus)
6413 } /* extern "C" */
6414 #endif /* defined (__cplusplus) */
6415 
6416 #endif /* amd-dbgapi.h */
Queue supports the AMD PM4 protocol.
Definition: amd-dbgapi.h:660
The wave stopped due to completing an instruction single-step.
Definition: amd-dbgapi.h:3040
Opaque agent handle.
Definition: amd-dbgapi.h:2083
Return the event kind.
Definition: amd-dbgapi.h:5771
uint64_t amd_dbgapi_global_address_t
Integral type used for a global virtual memory address in the inferior process.
Definition: amd-dbgapi.h:509
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.
uint64_t handle
Definition: amd-dbgapi.h:5592
uint64_t handle
Definition: amd-dbgapi.h:1073
Return the dispatch grid size (work-items) in the X, Y, and Z dimensions.
Definition: amd-dbgapi.h:2631
The address space is only read the waves of a kernel dispatch.
Definition: amd-dbgapi.h:4891
A set of watchpoints.
Definition: amd-dbgapi.h:3801
The wave stopped after causing a hardware fatal halt.
Definition: amd-dbgapi.h:3181
A wave waits for memory instructions to complete before executing further instructions.
Definition: amd-dbgapi.h:5514
The client process handle is invalid.
Definition: amd-dbgapi.h:878
If none of the bits are set, then amd_dbgapi_wave_stop stopped the wave.
Definition: amd-dbgapi.h:3018
uint64_t amd_dbgapi_os_queue_id_t
Native operating system queue ID.
Definition: amd-dbgapi.h:587
A wave on the queue had a memory violation.
Definition: amd-dbgapi.h:2402
An invalid argument was given to the function.
Definition: amd-dbgapi.h:729
uint64_t handle
Definition: amd-dbgapi.h:3733
Opaque displaced stepping handle.
Definition: amd-dbgapi.h:3551
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:5909
There is a fence with system memory scope.
Definition: amd-dbgapi.h:2757
The segment address cannot be converted to the requested address space.
Definition: amd-dbgapi.h:858
The instruction causes the wave to stop executing for some period of time, before continuing executio...
Definition: amd-dbgapi.h:1417
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:6395
amd_dbgapi_wave_creation_t
The kinds of wave creation supported by the hardware.
Definition: amd-dbgapi.h:1825
Queue is in a valid state.
Definition: amd-dbgapi.h:2375
Opaque queue handle.
Definition: amd-dbgapi.h:2258
A packet on the queue is invalid.
Definition: amd-dbgapi.h:2398
Watchpoints are not supported.
Definition: amd-dbgapi.h:3752
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.
Print fatal error and warning messages.
Definition: amd-dbgapi.h:5913
The runtime has been unloaded.
Definition: amd-dbgapi.h:5750
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:1532
Read access by load instructions.
Definition: amd-dbgapi.h:3778
The instruction classification is unknown.
Definition: amd-dbgapi.h:1334
Native operating system queue ID.
Definition: amd-dbgapi.h:2317
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_36
Query information about a dispatch.
The instruction terminates the wave execution.
Definition: amd-dbgapi.h:1385
The number of lanes supported by the wave.
Definition: amd-dbgapi.h:2923
amd_dbgapi_breakpoint_action_t
The action to perform after reporting a breakpoint has been hit.
Definition: amd-dbgapi.h:6067
Return how watchpoints are shared between processes.
Definition: amd-dbgapi.h:1566
Return the architecture of this dispatch.
Definition: amd-dbgapi.h:2595
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:4698
There is a fence with agent memory scope.
Definition: amd-dbgapi.h:2753
The address space is read only.
Definition: amd-dbgapi.h:4886
amd_dbgapi_wave_state_t
The execution state of a wave.
Definition: amd-dbgapi.h:2980
uint32_t amd_dbgapi_lane_id_t
A wave lane handle.
Definition: amd-dbgapi.h:4653
Return the AMD GPU ELF EF_AMDGPU_MACH value corresponding to the architecture.
Definition: amd-dbgapi.h:1104
There is no fence.
Definition: amd-dbgapi.h:2749
Queue supports HSA kernel dispatch with multiple producers protocol that supports cooperative dispatc...
Definition: amd-dbgapi.h:656
The wave is running in single-step mode.
Definition: amd-dbgapi.h:2990
amd_dbgapi_changed_t
Indication of if a value has changed.
Definition: amd-dbgapi.h:519
The wave is stopped.
Definition: amd-dbgapi.h:805
The wave cannot be resumed.
Definition: amd-dbgapi.h:813
Opaque register class handle.
Definition: amd-dbgapi.h:3938
uint64_t handle
Definition: amd-dbgapi.h:1534
The segment address in the address space is a member of the source language address class...
Definition: amd-dbgapi.h:5234
amd_dbgapi_agent_info_t
Agent queries that are supported by amd_dbgapi_agent_get_info.
Definition: amd-dbgapi.h:2099
amd_dbgapi_dispatch_barrier_t
Dispatch barrier.
Definition: amd-dbgapi.h:2725
Return the size of the register in bytes.
Definition: amd-dbgapi.h:4105
A wave on the queue executed an instruction that caused an error.
Definition: amd-dbgapi.h:2412
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:6244
The wave stopped due to triggering an enabled floating point invalid operation exception.
Definition: amd-dbgapi.h:3082
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:3067
No more watchpoints available.
Definition: amd-dbgapi.h:830
Opaque hardware data watchpoint handle.
Definition: amd-dbgapi.h:3731
Return the wave of a AMD_DBGAPI_EVENT_KIND_WAVE_STOP or AMD_DBGAPI_EVENT_KIND_WAVE_COMMAND_TERMINATED...
Definition: amd-dbgapi.h:5777
uint64_t handle
Definition: amd-dbgapi.h:6056
Return the breakpoint of a AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME event.
Definition: amd-dbgapi.h:5782
Print no messages.
Definition: amd-dbgapi.h:5904
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:2891
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:5899
The watchpoint handle is invalid.
Definition: amd-dbgapi.h:826
No forward progress is needed.
Definition: amd-dbgapi.h:1785
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.
uint64_t amd_dbgapi_os_agent_id_t
Native operating system agent ID.
Definition: amd-dbgapi.h:577
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:721
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:2117
The wave stopped due to executing an trap instruction other than the AMD_DBGAPI_WAVE_STOP_REASON_DEBU...
Definition: amd-dbgapi.h:3132
The instruction enters the trap handler.
Definition: amd-dbgapi.h:1399
The function has executed successfully.
Definition: amd-dbgapi.h:689
The value has changed.
Definition: amd-dbgapi.h:528
Read-modify-write access by atomic instructions.
Definition: amd-dbgapi.h:3787
The instruction has some form of special behavior not covered by any of the other instruction kinds...
Definition: amd-dbgapi.h:1426
Return the dispatch workgroup size (work-items) in the X, Y, and Z dimensions.
Definition: amd-dbgapi.h:2626
The wave is not stopped.
Definition: amd-dbgapi.h:801
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:2370
Queue supports the AMD SDMA protocol.
Definition: amd-dbgapi.h:664
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:773
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:822
The wave stopped due to triggering an enabled floating point underflow exception. ...
Definition: amd-dbgapi.h:3072
Return the dispatch barrier setting.
Definition: amd-dbgapi.h:2606
The shared library handle is invalid.
Definition: amd-dbgapi.h:866
Opaque shared library handle.
Definition: amd-dbgapi.h:5969
An event has occurred that is causing the queue to enter the error state.
Definition: amd-dbgapi.h:5702
amd_dbgapi_event_info_t
Event queries that are supported by amd_dbgapi_event_get_info.
Definition: amd-dbgapi.h:5765
amd_dbgapi_runtime_state_t
Inferior runtime state.
Definition: amd-dbgapi.h:5741
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_36
Query information about a process.
The wave stopped due to executing a debug trap instruction.
Definition: amd-dbgapi.h:3102
amd_dbgapi_shared_library_state_t
The state of a shared library.
Definition: amd-dbgapi.h:5977
Resume execution.
Definition: amd-dbgapi.h:6072
A wave on the queue had an assert trap.
Definition: amd-dbgapi.h:2406
PCI vendor ID of the agent.
Definition: amd-dbgapi.h:2121
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:5643
Return the wave&#39;s state.
Definition: amd-dbgapi.h:2843
Return the dispatch release fence.
Definition: amd-dbgapi.h:2616
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:3052
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:2880
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:1346
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:870
Return the reason the wave stopped as a bit set.
Definition: amd-dbgapi.h:2850
The library is already initialized.
Definition: amd-dbgapi.h:737
amd_dbgapi_code_object_info_t
Code object queries that are supported by amd_dbgapi_code_object_get_info.
Definition: amd-dbgapi.h:1907
Return the agent to which this queue belongs.
Definition: amd-dbgapi.h:2280
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:2389
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:566
#define AMD_DBGAPI_VERSION_0_30
The function was introduced in version 0.30 of the interface and has the symbol version string of &quot;AM...
Definition: amd-dbgapi.h:467
The instruction unconditionally branches to an address held in a pair of registers.
Definition: amd-dbgapi.h:1361
#define AMD_DBGAPI
Definition: amd-dbgapi.h:427
A command for a wave was not able to complete because the wave has terminated.
Definition: amd-dbgapi.h:5627
Return the byte size of an address in the address space.
Definition: amd-dbgapi.h:4914
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:2106
The lane handle is invalid.
Definition: amd-dbgapi.h:842
The wave stopped due to triggering a data watchpoint.
Definition: amd-dbgapi.h:3036
The wave handle is invalid.
Definition: amd-dbgapi.h:797
Opaque code object handle.
Definition: amd-dbgapi.h:1891
#define AMD_DBGAPI_VERSION_0_24
The function was introduced in version 0.24 of the interface and has the symbol version string of &quot;AM...
Definition: amd-dbgapi.h:461
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:5223
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:4690
uint64_t handle
Definition: amd-dbgapi.h:5971
uint64_t handle
Definition: amd-dbgapi.h:3553
void(* log_message)(amd_dbgapi_log_level_t level, const char *message)
Report a log message.
Definition: amd-dbgapi.h:6407
Return the address space access.
Definition: amd-dbgapi.h:4924
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:834
Return the dispatch completion event address.
Definition: amd-dbgapi.h:2666
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:4366
A reserved value only present to ensure that the underlying representation of this enumeration type i...
Definition: amd-dbgapi.h:3195
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 instruction unconditionally halts the wave.
Definition: amd-dbgapi.h:1404
Return the number of data watchpoints supported by the process.
Definition: amd-dbgapi.h:1560
uint64_t handle
Definition: amd-dbgapi.h:3940
amd_dbgapi_watchpoint_kind_t
Watchpoint memory access kinds.
Definition: amd-dbgapi.h:3773
The notifier for the process that indicates if pending events are available.
Definition: amd-dbgapi.h:1554
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.
Queue supports the HSA kernel dispatch with single producer protocol.
Definition: amd-dbgapi.h:646
Return the dispatch acquire fence.
Definition: amd-dbgapi.h:2611
Opaque event handle.
Definition: amd-dbgapi.h:5590
The runtime support in the inferior has been loaded or unloaded.
Definition: amd-dbgapi.h:5666
Normal progress is needed.
Definition: amd-dbgapi.h:1761
amd_dbgapi_watchpoint_id_t * watchpoint_ids
Definition: amd-dbgapi.h:3804
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:2874
Return the queue packet ID of the dispatch packet that initiated the dispatch.
Definition: amd-dbgapi.h:2601
amd_dbgapi_event_kind_t
The event kinds.
Definition: amd-dbgapi.h:5603
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:3963
The instruction unconditionally branches to an address held in a pair of source registers and the add...
Definition: amd-dbgapi.h:1380
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:5062
The wave has an outstanding stop request.
Definition: amd-dbgapi.h:809
The library is not initialized.
Definition: amd-dbgapi.h:741
The wave stopped due to triggering an enabled floating point input denormal exception.
Definition: amd-dbgapi.h:3057
The symbol was not found.
Definition: amd-dbgapi.h:891
Write access by store instructions or read-modify-write access by atomic instructions.
Definition: amd-dbgapi.h:3783
amd_dbgapi_address_space_alias_t
Indication of whether addresses in two address spaces may alias.
Definition: amd-dbgapi.h:5057
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:1139
The wave stopped due to detecting an unrecoverable ECC error.
Definition: amd-dbgapi.h:3172
amd_dbgapi_address_space_access_t
Indication of how the address space is accessed.
Definition: amd-dbgapi.h:4875
Queue supports the AMD SDMA XGMI protocol.
Definition: amd-dbgapi.h:668
The bytes being disassembled are not a legal instruction.
Definition: amd-dbgapi.h:769
uint64_t handle
Definition: amd-dbgapi.h:2260
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:5133
Dispatch has a barrier.
Definition: amd-dbgapi.h:2735
Return the breakpoint instruction for the architecture.
Definition: amd-dbgapi.h:1128
uint64_t amd_dbgapi_os_queue_packet_id_t
Native operating system queue packet ID.
Definition: amd-dbgapi.h:599
The value has not changed.
Definition: amd-dbgapi.h:524
The instruction conditionally branches to a literal address.
Definition: amd-dbgapi.h:1353
The URI name of the ELF shared object from which the code object was loaded.
Definition: amd-dbgapi.h:1957
Opaque address space handle.
Definition: amd-dbgapi.h:4854
The ELF AMD GPU machine value is invalid or unsupported.
Definition: amd-dbgapi.h:777
The difference between the address in the ELF shared object and the address the code object is loaded...
Definition: amd-dbgapi.h:1963
The address space supports all accesses.
Definition: amd-dbgapi.h:4881
The register handle is invalid.
Definition: amd-dbgapi.h:838
Memory instructions execute normally and a wave does not wait for the memory access to complete...
Definition: amd-dbgapi.h:5509
Native operating system process ID.
Definition: amd-dbgapi.h:1577
amd_dbgapi_process_info_t
Process queries that are supported by amd_dbgapi_process_get_info.
Definition: amd-dbgapi.h:1548
uint64_t handle
Definition: amd-dbgapi.h:2564
The wave stopped due to triggering an enabled floating point inexact exception.
Definition: amd-dbgapi.h:3077
The register is not a member of the register class.
Definition: amd-dbgapi.h:4371
The address class handle is invalid.
Definition: amd-dbgapi.h:846
A wave has stopped.
Definition: amd-dbgapi.h:5612
amd_dbgapi_architecture_info_t
Architecture queries that are supported by amd_dbgapi_architecture_get_info.
Definition: amd-dbgapi.h:1088
Opaque register handle.
Definition: amd-dbgapi.h:4068
amd_dbgapi_dispatch_fence_scope_t
Dispatch memory fence scope.
Definition: amd-dbgapi.h:2744
Addresses in the address spaces may alias.
Definition: amd-dbgapi.h:5066
The watchpoints of a process are shared between all processes.
Definition: amd-dbgapi.h:3764
Maximum number of waves supported by an execution unit.
Definition: amd-dbgapi.h:2135
The event handle is invalid.
Definition: amd-dbgapi.h:862
The wave stopped due to triggering an enabled integer divide by zero exception.
Definition: amd-dbgapi.h:3087
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:1830
Return the dispatch group segment size in bytes.
Definition: amd-dbgapi.h:2641
Return the address space name.
Definition: amd-dbgapi.h:4909
Return the size in bytes of the memory holding the queue packets.
Definition: amd-dbgapi.h:2312
pid_t amd_dbgapi_os_process_id_t
Native operating system process ID.
Definition: amd-dbgapi.h:539
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:1096
Return the agent to which this queue belongs.
Definition: amd-dbgapi.h:2590
The displaced stepping handle is invalid.
Definition: amd-dbgapi.h:817
Resume execution in in single step mode.
Definition: amd-dbgapi.h:3346
A fatal error has occurred.
Definition: amd-dbgapi.h:715
amd_dbgapi_queue_info_t
Queue queries that are supported by amd_dbgapi_queue_get_info.
Definition: amd-dbgapi.h:2274
The runtime has been loaded and debugging is supported by the library.
Definition: amd-dbgapi.h:5746
The segment address in the address space is not a member of the source language address class...
Definition: amd-dbgapi.h:5229
The wave stopped with an XNACK error.
Definition: amd-dbgapi.h:3190
Return the dispatch kernel code entry address.
Definition: amd-dbgapi.h:2656
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:4087
uint64_t handle
Definition: amd-dbgapi.h:2085
size_t count
Definition: amd-dbgapi.h:3803
The watchpoints are not shared across processes.
Definition: amd-dbgapi.h:3758
amd_dbgapi_register_class_info_t
Register class queries that are supported by amd_dbgapi_architecture_register_class_get_info.
Definition: amd-dbgapi.h:3955
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:2886
Request to resume a host breakpoint.
Definition: amd-dbgapi.h:5656
The process handle is invalid.
Definition: amd-dbgapi.h:781
The wave stopped due to triggering a memory violation.
Definition: amd-dbgapi.h:3147
Return the architecture specific address space that is used to implement a pointer or reference to th...
Definition: amd-dbgapi.h:4707
The wave stopped due to executing an assert trap instruction.
Definition: amd-dbgapi.h:3120
The instruction unconditionally branches to a literal address and the address of the following instru...
Definition: amd-dbgapi.h:1370
The address space handle is invalid.
Definition: amd-dbgapi.h:850
Print fatal error, warning, and info messages.
Definition: amd-dbgapi.h:5917
Opaque dispatch handle.
Definition: amd-dbgapi.h:2562
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. ...
Return the base address of the memory holding the queue packets.
Definition: amd-dbgapi.h:2307
Return the client thread of a AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME event.
Definition: amd-dbgapi.h:5787
Queue supports the HSA kernel dispatch with multiple producers protocol.
Definition: amd-dbgapi.h:630
The instruction executes sequentially.
Definition: amd-dbgapi.h:1340
Return the queue to which this dispatch belongs.
Definition: amd-dbgapi.h:2584
The wave stopped due to triggering an enabled floating point divide by zero exception.
Definition: amd-dbgapi.h:3062
The runtime has been loaded but there is a restriction error that prevents debugging the process...
Definition: amd-dbgapi.h:5756
Return if the runtime loaded in the inferior is supported by the library for a AMD_DBGAPI_EVENT_KIND_...
Definition: amd-dbgapi.h:5794
Callbacks that the client of the library must provide.
Definition: amd-dbgapi.h:6145
The shared library is not currently loaded.
Definition: amd-dbgapi.h:887
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:757
Return the breakpoint instruction size in bytes for the architecture.
Definition: amd-dbgapi.h:1120
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:6359
Return the dispatch private segment size in bytes.
Definition: amd-dbgapi.h:2636
Opaque source language address class handle.
Definition: amd-dbgapi.h:4673
Unknown queue type.
Definition: amd-dbgapi.h:615
amd_dbgapi_progress_t
The kinds of progress supported by the library.
Definition: amd-dbgapi.h:1754
Return the reason the queue is in error as a bit set.
Definition: amd-dbgapi.h:2302
#define AMD_DBGAPI_VERSION_0_36
The function was introduced in version 0.36 of the interface and has the symbol version string of &quot;AM...
Definition: amd-dbgapi.h:473
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:5503
uint64_t handle
Definition: amd-dbgapi.h:1893
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_os_queue_packet_id_t *read_packet_id, amd_dbgapi_os_queue_packet_id_t *write_packet_id, size_t *packets_byte_size, void **packets_bytes) AMD_DBGAPI_VERSION_0_36
Return the packets for a queue of a process.
Opaque wave handle.
Definition: amd-dbgapi.h:2821
Return the number of bytes to subtract from the PC after stopping due to a breakpoint instruction to ...
Definition: amd-dbgapi.h:1134
uint64_t handle
Definition: amd-dbgapi.h:2823
Return the largest instruction size in bytes for the architecture.
Definition: amd-dbgapi.h:1109
amd_dbgapi_address_space_info_t
Address space queries that are supported by amd_dbgapi_address_space_get_info.
Definition: amd-dbgapi.h:4901
void(* deallocate_memory)(void *data)
Deallocate memory that was allocated by amd_dbgapi_callbacks_s::allocate_memory.
Definition: amd-dbgapi.h:6177
Return the minimum instruction alignment in bytes for the architecture.
Definition: amd-dbgapi.h:1115
The native operating system process associated with a client process has exited.
Definition: amd-dbgapi.h:883
The instruction performs some kind of execution barrier which may result in the wave being halted unt...
Definition: amd-dbgapi.h:1411
Stop wave creation prevents new waves from being created.
Definition: amd-dbgapi.h:1834
Native operating system agent ID.
Definition: amd-dbgapi.h:2140
Return the dispatch kernel descriptor address.
Definition: amd-dbgapi.h:2651
The wave is running.
Definition: amd-dbgapi.h:2985
No event.
Definition: amd-dbgapi.h:5608
Resume normal execution.
Definition: amd-dbgapi.h:3342
The operation is not supported.
Definition: amd-dbgapi.h:725
uint64_t handle
Definition: amd-dbgapi.h:4070
uint64_t handle
Definition: amd-dbgapi.h:4856
Return the dispatch grid dimensionality.
Definition: amd-dbgapi.h:2621
uint64_t amd_dbgapi_size_t
Integral type used for sizes, including memory allocations, in the inferior.
Definition: amd-dbgapi.h:514
Return the NULL segment address value in the address space.
Definition: amd-dbgapi.h:4919
The shared library is loaded.
Definition: amd-dbgapi.h:5982
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.
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_36
Query information about an agent.
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:2646
Return the architecture of this queue.
Definition: amd-dbgapi.h:2285
amd_dbgapi_wave_stop_reason_t
A bit mask of the reasons that a wave stopped.
Definition: amd-dbgapi.h:3012
The register is a member of the register class.
Definition: amd-dbgapi.h:4375
Return the architecture of this agent.
Definition: amd-dbgapi.h:2111
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_36
Set a hardware data watchpoint.
Total number of Execution Units (EUs) available in the agent.
Definition: amd-dbgapi.h:2130
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:874
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:3024
amd_dbgapi_os_queue_type_t
Native operating system queue type.
Definition: amd-dbgapi.h:610
amd_dbgapi_resume_mode_t
The mode in which to resuming the execution of a wave.
Definition: amd-dbgapi.h:3337
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:6307
amd_dbgapi_status_t
AMD debugger API status codes.
Definition: amd-dbgapi.h:684
Return the current program counter value of the wave.
Definition: amd-dbgapi.h:2897
The agent handle is invalid.
Definition: amd-dbgapi.h:785
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:765
A reserved value only present to ensure that the underlying representation of this enumeration type i...
Definition: amd-dbgapi.h:2417
The wave workgroup coordinate in the dispatch grid dimensions.
Definition: amd-dbgapi.h:2911
Leave execution halted.
Definition: amd-dbgapi.h:6076
Opaque architecture handle.
Definition: amd-dbgapi.h:1071
If none of the bits are set, then the queue is not in the error state.
Definition: amd-dbgapi.h:2394
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:6272
Return the queue type.
Definition: amd-dbgapi.h:2290
amd_dbgapi_wave_info_t
Wave queries that are supported by amd_dbgapi_wave_get_info.
Definition: amd-dbgapi.h:2837
uint64_t handle
Definition: amd-dbgapi.h:4675
The address is not within the shared library.
Definition: amd-dbgapi.h:895
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:2918
Return the queue state.
Definition: amd-dbgapi.h:2295
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:3003
The wave stopped due to executing an illegal instruction.
Definition: amd-dbgapi.h:3157
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:2383
struct amd_dbgapi_symbolizer_id_s * amd_dbgapi_symbolizer_id_t
Opaque client symbolizer handle.
Definition: amd-dbgapi.h:1222
amd_dbgapi_status_t(* get_os_pid)(amd_dbgapi_client_process_id_t client_process_id, amd_dbgapi_os_process_id_t *os_pid)
Return the native operating system process handle for the process identified by the client process ha...
Definition: amd-dbgapi.h:6206
An error occurred while trying to access memory in the inferior.
Definition: amd-dbgapi.h:854
A generic error has occurred.
Definition: amd-dbgapi.h:693
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:761
struct amd_dbgapi_client_process_s * amd_dbgapi_client_process_id_t
Opaque client process handle.
Definition: amd-dbgapi.h:1520
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:2730
amd_dbgapi_watchpoint_share_kind_t
The way watchpoints are shared between processes.
Definition: amd-dbgapi.h:3747
The dispatch handle is invalid.
Definition: amd-dbgapi.h:793
amd_dbgapi_instruction_kind_t
The kinds of instruction classifications.
Definition: amd-dbgapi.h:1328
Read, write, or read-modify-write access by load, store, or atomic instructions.
Definition: amd-dbgapi.h:3792
The shared library is unloaded.
Definition: amd-dbgapi.h:5986
Return the watchpoint(s) the wave triggered.
Definition: amd-dbgapi.h:2863
struct amd_dbgapi_client_thread_s * amd_dbgapi_client_thread_id_t
Opaque client thread handle.
Definition: amd-dbgapi.h:6088
Return the register name.
Definition: amd-dbgapi.h:4095
Return if the architectures of all the agents of a process support controlling memory precision...
Definition: amd-dbgapi.h:1572
Print fatal error, warning, info, and verbose messages.
Definition: amd-dbgapi.h:5921
The queue handle is invalid.
Definition: amd-dbgapi.h:789
PCI device ID of the agent.
Definition: amd-dbgapi.h:2125
Return the register type as a C style type string.
Definition: amd-dbgapi.h:4127
An invalid size was given to the function.
Definition: amd-dbgapi.h:733
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_36
Query information about a queue.
amd_dbgapi_dispatch_info_t
Dispatch queries that are supported by amd_dbgapi_dispatch_get_info.
Definition: amd-dbgapi.h:2578
Opaque breakpoint handle.
Definition: amd-dbgapi.h:6054
Return the current execution mask of the wave.
Definition: amd-dbgapi.h:2905
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.