AMD_DBGAPI  0.48.0
amd-dbgapi.h
Go to the documentation of this file.
1 /* Copyright (c) 2019-2021 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 
386 #ifndef AMD_DBGAPI_H
387 #define AMD_DBGAPI_H 1
388 
389 /* Placeholder for calling convention and import/export macros */
390 #if !defined(AMD_DBGAPI_CALL)
391 #define AMD_DBGAPI_CALL
392 #endif /* !defined (AMD_DBGAPI_CALL) */
393 
394 #if !defined(AMD_DBGAPI_EXPORT_DECORATOR)
395 #if defined(__GNUC__)
396 #define AMD_DBGAPI_EXPORT_DECORATOR __attribute__ ((visibility ("default")))
397 #elif defined(_MSC_VER)
398 #define AMD_DBGAPI_EXPORT_DECORATOR __declspec(dllexport)
399 #endif /* defined (_MSC_VER) */
400 #endif /* !defined (AMD_DBGAPI_EXPORT_DECORATOR) */
401 
402 #if !defined(AMD_DBGAPI_IMPORT_DECORATOR)
403 #if defined(__GNUC__)
404 #define AMD_DBGAPI_IMPORT_DECORATOR
405 #elif defined(_MSC_VER)
406 #define AMD_DBGAPI_IMPORT_DECORATOR __declspec(dllimport)
407 #endif /* defined (_MSC_VER) */
408 #endif /* !defined (AMD_DBGAPI_IMPORT_DECORATOR) */
409 
410 #define AMD_DBGAPI_EXPORT AMD_DBGAPI_EXPORT_DECORATOR AMD_DBGAPI_CALL
411 #define AMD_DBGAPI_IMPORT AMD_DBGAPI_IMPORT_DECORATOR AMD_DBGAPI_CALL
412 
413 #if !defined(AMD_DBGAPI)
414 #if defined(AMD_DBGAPI_EXPORTS)
415 #define AMD_DBGAPI AMD_DBGAPI_EXPORT
416 #else /* !defined (AMD_DBGAPI_EXPORTS) */
417 #define AMD_DBGAPI AMD_DBGAPI_IMPORT
418 #endif /* !defined (AMD_DBGAPI_EXPORTS) */
419 #endif /* !defined (AMD_DBGAPI) */
420 
421 #if defined(__cplusplus)
422 extern "C" {
423 #endif /* defined (__cplusplus) */
424 
425 #if defined(__linux__)
426 #include <sys/types.h>
427 #endif /* __linux__ */
428 
429 #include <stddef.h>
430 #include <stdint.h>
431 
451 #define AMD_DBGAPI_VERSION_0_24
452 
457 #define AMD_DBGAPI_VERSION_0_30
458 
463 #define AMD_DBGAPI_VERSION_0_41
464 
469 #define AMD_DBGAPI_VERSION_0_42
470 
475 #define AMD_DBGAPI_VERSION_0_46
476 
481 #define AMD_DBGAPI_VERSION_0_47
482 
490 
518 
522 typedef uint64_t amd_dbgapi_size_t;
523 
527 typedef enum
528 {
538 
546 #if defined(__linux__)
548 #endif /* __linux__ */
549 
573 #if defined(__linux__)
575 #endif /* __linux__ */
576 
584 #if defined(__linux__)
585 typedef uint64_t amd_dbgapi_os_agent_id_t;
586 #endif /* __linux__ */
587 
594 #if defined(__linux__)
595 typedef uint64_t amd_dbgapi_os_queue_id_t;
596 #endif /* __linux__ */
597 
606 #if defined(__linux__)
608 #endif /* __linux__ */
609 
617 #if defined(__linux__)
618 typedef enum
619 {
679 #endif /* __linux__ */
680 
693 typedef enum
694 {
915 
933  amd_dbgapi_status_t status,
934  const char **status_string) AMD_DBGAPI_VERSION_0_24;
935 
959 #define AMD_DBGAPI_VERSION_MAJOR 0
960 
965 #define AMD_DBGAPI_VERSION_MINOR 48
966 
981  uint32_t *major, uint32_t *minor, uint32_t *patch) AMD_DBGAPI_VERSION_0_24;
982 
991 const char AMD_DBGAPI *
993 
1041 
1068 
1089 typedef struct
1090 {
1091  uint64_t handle;
1093 
1097 #define AMD_DBGAPI_ARCHITECTURE_NONE ((amd_dbgapi_architecture_id_t){ 0 })
1098 
1106 typedef enum
1107 {
1159 
1199  amd_dbgapi_architecture_id_t architecture_id,
1200  amd_dbgapi_architecture_info_t query, size_t value_size,
1201  void *value) AMD_DBGAPI_VERSION_0_30;
1202 
1232  uint32_t elf_amdgpu_machine,
1234 
1241 typedef struct amd_dbgapi_symbolizer_id_s *amd_dbgapi_symbolizer_id_t;
1242 
1335  amd_dbgapi_architecture_id_t architecture_id,
1337  const void *memory, char **instruction_text,
1338  amd_dbgapi_symbolizer_id_t symbolizer_id,
1339  amd_dbgapi_status_t (*symbolizer) (
1340  amd_dbgapi_symbolizer_id_t symbolizer_id,
1342  char **symbol_text)) AMD_DBGAPI_VERSION_0_30;
1343 
1347 typedef enum
1348 {
1459 
1463 typedef enum
1464 {
1475 
1548  amd_dbgapi_architecture_id_t architecture_id,
1550  const void *memory, amd_dbgapi_instruction_kind_t *instruction_kind,
1551  amd_dbgapi_instruction_properties_t *instruction_properties,
1552  void **instruction_information) AMD_DBGAPI_VERSION_0_46;
1553 
1575 typedef struct amd_dbgapi_client_process_s *amd_dbgapi_client_process_id_t;
1576 
1587 typedef struct
1588 {
1589  uint64_t handle;
1591 
1595 #define AMD_DBGAPI_PROCESS_NONE ((amd_dbgapi_process_id_t){ 0 })
1596 
1603 typedef enum
1604 {
1635 
1680  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41;
1681 
1772  amd_dbgapi_client_process_id_t client_process_id,
1774 
1821 
1836 typedef enum
1837 {
1869 
1895  amd_dbgapi_process_id_t process_id,
1897 
1909 typedef enum
1910 {
1920 
1946  amd_dbgapi_process_id_t process_id,
1948 
1975 typedef struct
1976 {
1977  uint64_t handle;
1979 
1983 #define AMD_DBGAPI_CODE_OBJECT_NONE ((amd_dbgapi_code_object_id_t){ 0 })
1984 
1991 typedef enum
1992 {
2054 
2094  amd_dbgapi_code_object_id_t code_object_id,
2095  amd_dbgapi_code_object_info_t query, size_t value_size,
2096  void *value) AMD_DBGAPI_VERSION_0_41;
2097 
2148  amd_dbgapi_process_id_t process_id, size_t *code_object_count,
2149  amd_dbgapi_code_object_id_t **code_objects,
2151 
2168 typedef struct
2169 {
2170  uint64_t handle;
2172 
2176 #define AMD_DBGAPI_AGENT_NONE ((amd_dbgapi_agent_id_t){ 0 })
2177 
2184 typedef enum
2185 {
2232 
2273  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41;
2274 
2324  amd_dbgapi_process_id_t process_id, size_t *agent_count,
2325  amd_dbgapi_agent_id_t **agents,
2327 
2346 typedef struct
2347 {
2348  uint64_t handle;
2350 
2354 #define AMD_DBGAPI_QUEUE_NONE ((amd_dbgapi_queue_id_t){ 0 })
2355 
2362 typedef enum
2363 {
2412 
2453  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41;
2454 
2458 typedef enum
2459 {
2473 
2477 typedef enum
2478 {
2507 
2557  amd_dbgapi_process_id_t process_id, size_t *queue_count,
2558  amd_dbgapi_queue_id_t **queues,
2560 
2625  amd_dbgapi_queue_id_t queue_id,
2626  amd_dbgapi_os_queue_packet_id_t *read_packet_id,
2627  amd_dbgapi_os_queue_packet_id_t *write_packet_id,
2628  size_t *packets_byte_size, void **packets_bytes) AMD_DBGAPI_VERSION_0_41;
2629 
2648 typedef struct
2649 {
2650  uint64_t handle;
2652 
2656 #define AMD_DBGAPI_DISPATCH_NONE ((amd_dbgapi_dispatch_id_t){ 0 })
2657 
2664 typedef enum
2665 {
2758 
2802  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41;
2803 
2810 typedef enum
2811 {
2822 
2829 typedef enum
2830 {
2844 
2889  amd_dbgapi_process_id_t process_id, size_t *dispatch_count,
2890  amd_dbgapi_dispatch_id_t **dispatches,
2892 
2909 typedef struct
2910 {
2911  uint64_t handle;
2913 
2917 #define AMD_DBGAPI_WAVE_NONE ((amd_dbgapi_wave_id_t){ 0 })
2918 
2925 typedef enum
2926 {
3018 
3063  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41;
3064 
3068 typedef enum
3069 {
3093 
3100 typedef enum
3101 {
3285 
3334  amd_dbgapi_process_id_t process_id, size_t *wave_count,
3335  amd_dbgapi_wave_id_t **waves,
3337 
3419 
3423 typedef enum
3424 {
3434 
3542  amd_dbgapi_wave_id_t wave_id,
3544 
3645 typedef struct
3646 {
3647  uint64_t handle;
3649 
3653 #define AMD_DBGAPI_DISPLACED_STEPPING_NONE \
3654  (amd_dbgapi_displaced_stepping_id_t{ 0 })
3655 
3663 typedef enum
3664 {
3671 
3712  amd_dbgapi_displaced_stepping_id_t displaced_stepping_id,
3713  amd_dbgapi_displaced_stepping_info_t query, size_t value_size,
3714  void *value) AMD_DBGAPI_VERSION_0_41;
3715 
3798  amd_dbgapi_wave_id_t wave_id, const void *saved_instruction_bytes,
3799  amd_dbgapi_displaced_stepping_id_t *displaced_stepping)
3801 
3853  amd_dbgapi_wave_id_t wave_id,
3854  amd_dbgapi_displaced_stepping_id_t displaced_stepping)
3856 
3890 typedef struct
3891 {
3892  uint64_t handle;
3894 
3898 #define AMD_DBGAPI_WATCHPOINT_NONE ((amd_dbgapi_watchpoint_id_t){ 0 })
3899 
3906 typedef enum
3907 {
3914 
3954  amd_dbgapi_watchpoint_id_t watchpoint_id,
3955  amd_dbgapi_watchpoint_info_t query, size_t value_size,
3956  void *value) AMD_DBGAPI_VERSION_0_41;
3957 
3964 typedef enum
3965 {
3983 
3990 typedef enum
3991 {
4011 
4018 typedef struct
4019 {
4020  size_t count;
4023 
4102  amd_dbgapi_watchpoint_id_t *watchpoint_id,
4103  amd_dbgapi_global_address_t *watchpoint_address,
4104  amd_dbgapi_size_t *watchpoint_size) AMD_DBGAPI_VERSION_0_41;
4105 
4131  amd_dbgapi_process_id_t process_id,
4133 
4155 typedef struct
4156 {
4157  uint64_t handle;
4159 
4163 #define AMD_DBGAPI_REGISTER_CLASS_NONE ((amd_dbgapi_register_class_id_t){ 0 })
4164 
4172 typedef enum
4173 {
4187 
4228  amd_dbgapi_register_class_id_t register_class_id,
4229  amd_dbgapi_register_class_info_t query, size_t value_size,
4230  void *value) AMD_DBGAPI_VERSION_0_41;
4231 
4273  amd_dbgapi_architecture_id_t architecture_id, size_t *register_class_count,
4275 
4284 typedef struct
4285 {
4286  uint64_t handle;
4288 
4292 #define AMD_DBGAPI_REGISTER_NONE ((amd_dbgapi_register_id_t){ 0 })
4293 
4300 typedef enum
4301 {
4347 
4389  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_46;
4390 
4394 typedef enum
4395 {
4405 
4440  amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id,
4442 
4488  amd_dbgapi_architecture_id_t architecture_id, size_t *register_count,
4490 
4535  amd_dbgapi_wave_id_t wave_id, size_t *register_count,
4537 
4575  amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_register,
4577 
4581 typedef enum
4582 {
4592 
4631  amd_dbgapi_register_class_id_t register_class_id,
4632  amd_dbgapi_register_id_t register_id,
4633  amd_dbgapi_register_class_state_t *register_class_state)
4635 
4690  amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id,
4691  amd_dbgapi_size_t offset, amd_dbgapi_size_t value_size,
4692  void *value) AMD_DBGAPI_VERSION_0_41;
4693 
4753  amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id,
4754  amd_dbgapi_size_t offset, amd_dbgapi_size_t value_size,
4755  const void *value) AMD_DBGAPI_VERSION_0_42;
4756 
4809  amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id,
4811 
4819 typedef struct
4820 {
4822  amd_dbgapi_register_id_t saved_return_address_register[2];
4824 
4864 typedef uint32_t amd_dbgapi_lane_id_t;
4865 
4869 #define AMD_DBGAPI_LANE_NONE ((amd_dbgapi_lane_id_t) (-1))
4870 
4884 typedef struct
4885 {
4886  uint64_t handle;
4888 
4892 #define AMD_DBGAPI_ADDRESS_CLASS_NONE ((amd_dbgapi_address_class_id_t){ 0 })
4893 
4901 typedef enum
4902 {
4930 
4971  amd_dbgapi_address_class_id_t address_class_id,
4972  amd_dbgapi_address_class_info_t query, size_t value_size,
4973  void *value) AMD_DBGAPI_VERSION_0_46;
4974 
5017  amd_dbgapi_architecture_id_t architecture_id, size_t *address_class_count,
5019 
5059  amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_class,
5061 
5073 typedef struct
5074 {
5075  uint64_t handle;
5077 
5081 #define AMD_DBGAPI_ADDRESS_SPACE_NONE ((amd_dbgapi_address_space_id_t){ 0 })
5082 
5089 #define AMD_DBGAPI_ADDRESS_SPACE_GLOBAL ((amd_dbgapi_address_space_id_t){ 1 })
5090 
5094 typedef enum
5095 {
5112 
5120 typedef enum
5121 {
5155 
5195  amd_dbgapi_address_space_id_t address_space_id,
5196  amd_dbgapi_address_space_info_t query, size_t value_size,
5197  void *value) AMD_DBGAPI_VERSION_0_46;
5198 
5238  amd_dbgapi_architecture_id_t architecture_id, size_t *address_space_count,
5240 
5281  amd_dbgapi_architecture_id_t architecture_id, uint64_t dwarf_address_space,
5283 
5287 typedef enum
5288 {
5298 
5339  amd_dbgapi_address_space_id_t address_space_id1,
5340  amd_dbgapi_address_space_id_t address_space_id2,
5341  amd_dbgapi_address_space_alias_t *address_space_alias)
5343 
5361 
5439  amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id,
5440  amd_dbgapi_address_space_id_t source_address_space_id,
5441  amd_dbgapi_segment_address_t source_segment_address,
5442  amd_dbgapi_address_space_id_t destination_address_space_id,
5443  amd_dbgapi_segment_address_t *destination_segment_address)
5445 
5450 typedef enum
5451 {
5463 
5525  amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id,
5526  amd_dbgapi_address_space_id_t address_space_id,
5527  amd_dbgapi_segment_address_t segment_address,
5528  amd_dbgapi_address_class_id_t address_class_id,
5529  amd_dbgapi_address_class_state_t *address_class_state)
5531 
5622  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5623  amd_dbgapi_lane_id_t lane_id,
5624  amd_dbgapi_address_space_id_t address_space_id,
5625  amd_dbgapi_segment_address_t segment_address,
5626  amd_dbgapi_size_t *value_size, void *value) AMD_DBGAPI_VERSION_0_41;
5627 
5718  amd_dbgapi_process_id_t process_id, amd_dbgapi_wave_id_t wave_id,
5719  amd_dbgapi_lane_id_t lane_id,
5720  amd_dbgapi_address_space_id_t address_space_id,
5721  amd_dbgapi_segment_address_t segment_address,
5722  amd_dbgapi_size_t *value_size, const void *value) AMD_DBGAPI_VERSION_0_41;
5723 
5742 typedef enum
5743 {
5755 
5795  amd_dbgapi_process_id_t process_id,
5797 
5829 typedef struct
5830 {
5831  uint64_t handle;
5833 
5837 #define AMD_DBGAPI_EVENT_NONE ((amd_dbgapi_event_id_t){ 0 })
5838 
5842 typedef enum
5843 {
5949 
5986  amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t *event_id,
5988 
5992 typedef enum
5993 {
6009 
6016 typedef enum
6017 {
6052 
6094  size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41;
6095 
6123 
6145 typedef enum
6146 {
6169 
6190 
6215 typedef struct
6216 {
6217  uint64_t handle;
6219 
6223 typedef enum
6224 {
6234 
6238 #define AMD_DBGAPI_SHARED_LIBRARY_NONE ((amd_dbgapi_shared_library_id_t){ 0 })
6239 
6247 typedef enum
6248 {
6255 
6295  amd_dbgapi_shared_library_id_t shared_library_id,
6296  amd_dbgapi_shared_library_info_t query, size_t value_size,
6297  void *value) AMD_DBGAPI_VERSION_0_41;
6298 
6337  amd_dbgapi_shared_library_id_t shared_library_id,
6338  amd_dbgapi_shared_library_state_t shared_library_state)
6340 
6353 typedef struct
6354 {
6355  uint64_t handle;
6357 
6361 #define AMD_DBGAPI_BREAKPOINT_NONE ((amd_dbgapi_breakpoint_id_t){ 0 })
6362 
6369 typedef enum
6370 {
6382 
6422  amd_dbgapi_breakpoint_id_t breakpoint_id,
6423  amd_dbgapi_breakpoint_info_t query, size_t value_size,
6424  void *value) AMD_DBGAPI_VERSION_0_41;
6425 
6429 typedef enum
6430 {
6440 
6450 typedef struct amd_dbgapi_client_thread_s *amd_dbgapi_client_thread_id_t;
6451 
6490  amd_dbgapi_breakpoint_id_t breakpoint_id,
6491  amd_dbgapi_client_thread_id_t client_thread_id,
6493 
6501 {
6502 
6514  void *(*allocate_memory) (size_t byte_size);
6515 
6532  void (*deallocate_memory) (void *data);
6533 
6562  amd_dbgapi_client_process_id_t client_process_id,
6563  amd_dbgapi_os_process_id_t *os_pid);
6564 
6600  amd_dbgapi_client_process_id_t client_process_id,
6601  const char *shared_library_name,
6602  amd_dbgapi_shared_library_id_t shared_library_id,
6603  amd_dbgapi_shared_library_state_t *shared_library_state);
6604 
6628  amd_dbgapi_client_process_id_t client_process_id,
6629  amd_dbgapi_shared_library_id_t shared_library_id);
6663  amd_dbgapi_client_process_id_t client_process_id,
6664  amd_dbgapi_shared_library_id_t shared_library_id,
6665  const char *symbol_name, amd_dbgapi_global_address_t *address);
6666 
6715  amd_dbgapi_client_process_id_t client_process_id,
6716  amd_dbgapi_shared_library_id_t shared_library_id,
6718  amd_dbgapi_breakpoint_id_t breakpoint_id);
6719 
6751  amd_dbgapi_client_process_id_t client_process_id,
6752  amd_dbgapi_breakpoint_id_t breakpoint_id);
6753 
6762  void (*log_message) (amd_dbgapi_log_level_t level, const char *message);
6763 };
6764 
6767 #if defined(__cplusplus)
6768 } /* extern "C" */
6769 #endif /* defined (__cplusplus) */
6770 
6771 #endif /* amd-dbgapi.h */
#define AMD_DBGAPI
Definition: amd-dbgapi.h:417
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_agent_list(amd_dbgapi_process_id_t process_id, size_t *agent_count, amd_dbgapi_agent_id_t **agents, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_41
Return the list of agents.
amd_dbgapi_agent_info_t
Agent queries that are supported by amd_dbgapi_agent_get_info.
Definition: amd-dbgapi.h:2185
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_agent_get_info(amd_dbgapi_agent_id_t agent_id, amd_dbgapi_agent_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41
Query information about an agent.
@ AMD_DBGAPI_AGENT_INFO_OS_ID
Native operating system agent ID.
Definition: amd-dbgapi.h:2230
@ AMD_DBGAPI_AGENT_INFO_PCI_DEVICE_ID
PCI device ID of the agent.
Definition: amd-dbgapi.h:2215
@ AMD_DBGAPI_AGENT_INFO_PROCESS
Return the process to which this agent belongs.
Definition: amd-dbgapi.h:2190
@ AMD_DBGAPI_AGENT_INFO_PCI_VENDOR_ID
PCI vendor ID of the agent.
Definition: amd-dbgapi.h:2211
@ AMD_DBGAPI_AGENT_INFO_NAME
Agent name.
Definition: amd-dbgapi.h:2196
@ AMD_DBGAPI_AGENT_INFO_ARCHITECTURE
Return the architecture of this agent.
Definition: amd-dbgapi.h:2201
@ AMD_DBGAPI_AGENT_INFO_EXECUTION_UNIT_COUNT
Total number of Execution Units (EUs) available in the agent.
Definition: amd-dbgapi.h:2220
@ AMD_DBGAPI_AGENT_INFO_PCI_SLOT
PCI slot of the agent in BDF format (see [Bus:Device.Function (BDF) Notation][bfd].
Definition: amd-dbgapi.h:2207
@ AMD_DBGAPI_AGENT_INFO_MAX_WAVES_PER_EXECUTION_UNIT
Maximum number of waves supported by an execution unit.
Definition: amd-dbgapi.h:2225
amd_dbgapi_architecture_info_t
Architecture queries that are supported by amd_dbgapi_architecture_get_info.
Definition: amd-dbgapi.h:1107
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_classify_instruction(amd_dbgapi_architecture_id_t architecture_id, amd_dbgapi_global_address_t address, amd_dbgapi_size_t *size, const void *memory, amd_dbgapi_instruction_kind_t *instruction_kind, amd_dbgapi_instruction_properties_t *instruction_properties, void **instruction_information) AMD_DBGAPI_VERSION_0_46
Classify a single instruction.
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.
struct amd_dbgapi_symbolizer_id_s * amd_dbgapi_symbolizer_id_t
Opaque client symbolizer handle.
Definition: amd-dbgapi.h:1241
amd_dbgapi_instruction_kind_t
The kinds of instruction classifications.
Definition: amd-dbgapi.h:1348
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.
amd_dbgapi_instruction_properties_t
A bit mask of the properties of an instruction.
Definition: amd-dbgapi.h:1464
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_ARCHITECTURE_INFO_ELF_AMDGPU_MACHINE
Return the AMD GPU ELF EF_AMDGPU_MACH value corresponding to the architecture.
Definition: amd-dbgapi.h:1122
@ AMD_DBGAPI_ARCHITECTURE_INFO_MINIMUM_INSTRUCTION_ALIGNMENT
Return the minimum instruction alignment in bytes for the architecture.
Definition: amd-dbgapi.h:1133
@ AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_SIZE
Return the breakpoint instruction size in bytes for the architecture.
Definition: amd-dbgapi.h:1138
@ AMD_DBGAPI_ARCHITECTURE_INFO_PC_REGISTER
Return the register handle for the PC for the architecture.
Definition: amd-dbgapi.h:1157
@ AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_PC_ADJUST
Return the number of bytes to subtract from the PC after stopping due to a breakpoint instruction to ...
Definition: amd-dbgapi.h:1152
@ AMD_DBGAPI_ARCHITECTURE_INFO_LARGEST_INSTRUCTION_SIZE
Return the largest instruction size in bytes for the architecture.
Definition: amd-dbgapi.h:1127
@ AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION
Return the breakpoint instruction for the architecture.
Definition: amd-dbgapi.h:1146
@ AMD_DBGAPI_ARCHITECTURE_INFO_NAME
Return the architecture name.
Definition: amd-dbgapi.h:1114
@ AMD_DBGAPI_INSTRUCTION_KIND_BARRIER
The instruction performs some kind of execution barrier which may result in the wave being halted unt...
Definition: amd-dbgapi.h:1442
@ AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_CALL_REGISTER_PAIRS
The instruction unconditionally branches to an address held in a pair of source registers and the add...
Definition: amd-dbgapi.h:1411
@ AMD_DBGAPI_INSTRUCTION_KIND_SEQUENTIAL
The instruction executes sequentially.
Definition: amd-dbgapi.h:1359
@ AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_BRANCH_CONDITIONAL_REGISTER_PAIR
The instruction conditionally branches to an address held in a pair of registers.
Definition: amd-dbgapi.h:1390
@ AMD_DBGAPI_INSTRUCTION_KIND_SPECIAL
The instruction has some form of special behavior not covered by any of the other instruction kinds.
Definition: amd-dbgapi.h:1457
@ AMD_DBGAPI_INSTRUCTION_KIND_HALT
The instruction unconditionally halts the wave.
Definition: amd-dbgapi.h:1435
@ AMD_DBGAPI_INSTRUCTION_KIND_TRAP
The instruction enters the trap handler.
Definition: amd-dbgapi.h:1430
@ AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_CALL_REGISTER_PAIR
The instruction unconditionally branches to a literal address and the address of the following instru...
Definition: amd-dbgapi.h:1401
@ AMD_DBGAPI_INSTRUCTION_KIND_INDIRECT_BRANCH_REGISTER_PAIR
The instruction unconditionally branches to an address held in a pair of registers.
Definition: amd-dbgapi.h:1380
@ AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH_CONDITIONAL
The instruction conditionally branches to a literal address.
Definition: amd-dbgapi.h:1372
@ AMD_DBGAPI_INSTRUCTION_KIND_SLEEP
The instruction causes the wave to stop executing for some period of time, before continuing executio...
Definition: amd-dbgapi.h:1448
@ AMD_DBGAPI_INSTRUCTION_KIND_TERMINATE
The instruction terminates the wave execution.
Definition: amd-dbgapi.h:1416
@ AMD_DBGAPI_INSTRUCTION_KIND_UNKNOWN
The instruction classification is unknown.
Definition: amd-dbgapi.h:1353
@ AMD_DBGAPI_INSTRUCTION_KIND_DIRECT_BRANCH
The instruction unconditionally branches to a literal address.
Definition: amd-dbgapi.h:1365
@ AMD_DBGAPI_INSTRUCTION_PROPERTY_RESERVED
A reserved value only present to ensure that the underlying representation of this enumeration type i...
Definition: amd-dbgapi.h:1473
@ AMD_DBGAPI_INSTRUCTION_PROPERTY_NONE
The instruction has no properties.
Definition: amd-dbgapi.h:1468
uint64_t amd_dbgapi_size_t
Integral type used for sizes, including memory allocations, in the inferior.
Definition: amd-dbgapi.h:522
uint64_t amd_dbgapi_os_queue_id_t
Native operating system queue ID.
Definition: amd-dbgapi.h:595
uint64_t amd_dbgapi_global_address_t
Integral type used for a global virtual memory address in the inferior process.
Definition: amd-dbgapi.h:517
uint64_t amd_dbgapi_os_queue_packet_id_t
Native operating system queue packet ID.
Definition: amd-dbgapi.h:607
uint64_t amd_dbgapi_os_agent_id_t
Native operating system agent ID.
Definition: amd-dbgapi.h:585
amd_dbgapi_os_queue_type_t
Native operating system queue type.
Definition: amd-dbgapi.h:619
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:574
pid_t amd_dbgapi_os_process_id_t
Native operating system process ID.
Definition: amd-dbgapi.h:547
amd_dbgapi_changed_t
Indication of if a value has changed.
Definition: amd-dbgapi.h:528
@ AMD_DBGAPI_OS_QUEUE_TYPE_UNKNOWN
Unknown queue type.
Definition: amd-dbgapi.h:623
@ AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA
Queue supports the AMD SDMA protocol.
Definition: amd-dbgapi.h:673
@ AMD_DBGAPI_OS_QUEUE_TYPE_AMD_PM4
Queue supports the AMD PM4 protocol.
Definition: amd-dbgapi.h:669
@ AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_MULTIPLE_PRODUCER
Queue supports the HSA kernel dispatch with multiple producers protocol.
Definition: amd-dbgapi.h:639
@ AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_SINGLE_PRODUCER
Queue supports the HSA kernel dispatch with single producer protocol.
Definition: amd-dbgapi.h:655
@ AMD_DBGAPI_OS_QUEUE_TYPE_AMD_SDMA_XGMI
Queue supports the AMD SDMA XGMI protocol.
Definition: amd-dbgapi.h:677
@ AMD_DBGAPI_OS_QUEUE_TYPE_HSA_KERNEL_DISPATCH_COOPERATIVE
Queue supports HSA kernel dispatch with multiple producers protocol that supports cooperative dispatc...
Definition: amd-dbgapi.h:665
@ AMD_DBGAPI_CHANGED_YES
The value has changed.
Definition: amd-dbgapi.h:536
@ AMD_DBGAPI_CHANGED_NO
The value has not changed.
Definition: amd-dbgapi.h:532
amd_dbgapi_breakpoint_info_t
Breakpoint queries that are supported by amd_dbgapi_breakpoint_get_info.
Definition: amd-dbgapi.h:6370
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_report_shared_library(amd_dbgapi_shared_library_id_t shared_library_id, amd_dbgapi_shared_library_state_t shared_library_state) AMD_DBGAPI_VERSION_0_41
Report that a shared library enabled by the amd_dbgapi_callbacks_s::enable_notify_shared_library call...
amd_dbgapi_breakpoint_action_t
The action to perform after reporting a breakpoint has been hit.
Definition: amd-dbgapi.h:6430
amd_dbgapi_shared_library_info_t
Shared library queries that are supported by amd_dbgapi_shared_library_get_info.
Definition: amd-dbgapi.h:6248
amd_dbgapi_shared_library_state_t
The state of a shared library.
Definition: amd-dbgapi.h:6224
struct amd_dbgapi_client_thread_s * amd_dbgapi_client_thread_id_t
Opaque client thread handle.
Definition: amd-dbgapi.h:6450
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_breakpoint_get_info(amd_dbgapi_breakpoint_id_t breakpoint_id, amd_dbgapi_breakpoint_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41
Query information about a breakpoint.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_shared_library_get_info(amd_dbgapi_shared_library_id_t shared_library_id, amd_dbgapi_shared_library_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41
Query information about a shared library.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_report_breakpoint_hit(amd_dbgapi_breakpoint_id_t breakpoint_id, amd_dbgapi_client_thread_id_t client_thread_id, amd_dbgapi_breakpoint_action_t *breakpoint_action) AMD_DBGAPI_VERSION_0_41
Report that a breakpoint inserted by the amd_dbgapi_callbacks_s::insert_breakpoint calback has been h...
@ AMD_DBGAPI_BREAKPOINT_INFO_PROCESS
Return the process to which this breakpoint belongs.
Definition: amd-dbgapi.h:6380
@ AMD_DBGAPI_BREAKPOINT_INFO_SHARED_LIBRARY
Return the shared library to which this breakpoint belongs.
Definition: amd-dbgapi.h:6375
@ AMD_DBGAPI_BREAKPOINT_ACTION_RESUME
Resume execution.
Definition: amd-dbgapi.h:6434
@ AMD_DBGAPI_BREAKPOINT_ACTION_HALT
Leave execution halted.
Definition: amd-dbgapi.h:6438
@ AMD_DBGAPI_SHARED_LIBRARY_INFO_PROCESS
Return the process to which this shared library belongs.
Definition: amd-dbgapi.h:6253
@ AMD_DBGAPI_SHARED_LIBRARY_STATE_LOADED
The shared library is loaded.
Definition: amd-dbgapi.h:6228
@ AMD_DBGAPI_SHARED_LIBRARY_STATE_UNLOADED
The shared library is unloaded.
Definition: amd-dbgapi.h:6232
amd_dbgapi_code_object_info_t
Code object queries that are supported by amd_dbgapi_code_object_get_info.
Definition: amd-dbgapi.h:1992
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_code_object_list(amd_dbgapi_process_id_t process_id, size_t *code_object_count, amd_dbgapi_code_object_id_t **code_objects, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_41
Return the list of loaded code objects.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_code_object_get_info(amd_dbgapi_code_object_id_t code_object_id, amd_dbgapi_code_object_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41
Query information about a code object.
@ AMD_DBGAPI_CODE_OBJECT_INFO_PROCESS
Return the process to which this code object belongs.
Definition: amd-dbgapi.h:1997
@ AMD_DBGAPI_CODE_OBJECT_INFO_URI_NAME
The URI name of the ELF shared object from which the code object was loaded.
Definition: amd-dbgapi.h:2046
@ AMD_DBGAPI_CODE_OBJECT_INFO_LOAD_ADDRESS
The difference between the address in the ELF shared object and the address the code object is loaded...
Definition: amd-dbgapi.h:2052
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_dispatch_list(amd_dbgapi_process_id_t process_id, size_t *dispatch_count, amd_dbgapi_dispatch_id_t **dispatches, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_41
Return the list of dispatches.
amd_dbgapi_dispatch_info_t
Dispatch queries that are supported by amd_dbgapi_dispatch_get_info.
Definition: amd-dbgapi.h:2665
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_dispatch_get_info(amd_dbgapi_dispatch_id_t dispatch_id, amd_dbgapi_dispatch_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41
Query information about a dispatch.
amd_dbgapi_dispatch_barrier_t
Dispatch barrier.
Definition: amd-dbgapi.h:2811
amd_dbgapi_dispatch_fence_scope_t
Dispatch memory fence scope.
Definition: amd-dbgapi.h:2830
@ AMD_DBGAPI_DISPATCH_INFO_ACQUIRE_FENCE
Return the dispatch acquire fence.
Definition: amd-dbgapi.h:2701
@ AMD_DBGAPI_DISPATCH_INFO_KERNEL_ARGUMENT_SEGMENT_ADDRESS
Return the dispatch kernel argument segment address.
Definition: amd-dbgapi.h:2736
@ AMD_DBGAPI_DISPATCH_INFO_QUEUE
Return the queue to which this dispatch belongs.
Definition: amd-dbgapi.h:2670
@ AMD_DBGAPI_DISPATCH_INFO_GROUP_SEGMENT_SIZE
Return the dispatch group segment size in bytes.
Definition: amd-dbgapi.h:2731
@ AMD_DBGAPI_DISPATCH_INFO_AGENT
Return the agent to which this dispatch belongs.
Definition: amd-dbgapi.h:2675
@ AMD_DBGAPI_DISPATCH_INFO_WORK_GROUP_SIZES
Return the dispatch workgroup size (work-items) in the X, Y, and Z dimensions.
Definition: amd-dbgapi.h:2716
@ AMD_DBGAPI_DISPATCH_INFO_GRID_DIMENSIONS
Return the dispatch grid dimensionality.
Definition: amd-dbgapi.h:2711
@ AMD_DBGAPI_DISPATCH_INFO_OS_QUEUE_PACKET_ID
Return the queue packet ID of the dispatch packet that initiated the dispatch.
Definition: amd-dbgapi.h:2691
@ AMD_DBGAPI_DISPATCH_INFO_PROCESS
Return the process to which this dispatch belongs.
Definition: amd-dbgapi.h:2680
@ AMD_DBGAPI_DISPATCH_INFO_GRID_SIZES
Return the dispatch grid size (work-items) in the X, Y, and Z dimensions.
Definition: amd-dbgapi.h:2721
@ AMD_DBGAPI_DISPATCH_INFO_RELEASE_FENCE
Return the dispatch release fence.
Definition: amd-dbgapi.h:2706
@ AMD_DBGAPI_DISPATCH_INFO_BARRIER
Return the dispatch barrier setting.
Definition: amd-dbgapi.h:2696
@ AMD_DBGAPI_DISPATCH_INFO_ARCHITECTURE
Return the architecture of this dispatch.
Definition: amd-dbgapi.h:2685
@ AMD_DBGAPI_DISPATCH_INFO_KERNEL_DESCRIPTOR_ADDRESS
Return the dispatch kernel descriptor address.
Definition: amd-dbgapi.h:2741
@ AMD_DBGAPI_DISPATCH_INFO_PRIVATE_SEGMENT_SIZE
Return the dispatch private segment size in bytes.
Definition: amd-dbgapi.h:2726
@ AMD_DBGAPI_DISPATCH_INFO_KERNEL_COMPLETION_ADDRESS
Return the dispatch completion event address.
Definition: amd-dbgapi.h:2756
@ AMD_DBGAPI_DISPATCH_INFO_KERNEL_CODE_ENTRY_ADDRESS
Return the dispatch kernel code entry address.
Definition: amd-dbgapi.h:2746
@ AMD_DBGAPI_DISPATCH_BARRIER_NONE
Dispatch has no barrier.
Definition: amd-dbgapi.h:2815
@ AMD_DBGAPI_DISPATCH_BARRIER_PRESENT
Dispatch has a barrier.
Definition: amd-dbgapi.h:2820
@ AMD_DBGAPI_DISPATCH_FENCE_SCOPE_NONE
There is no fence.
Definition: amd-dbgapi.h:2834
@ AMD_DBGAPI_DISPATCH_FENCE_SCOPE_AGENT
There is a fence with agent memory scope.
Definition: amd-dbgapi.h:2838
@ AMD_DBGAPI_DISPATCH_FENCE_SCOPE_SYSTEM
There is a fence with system memory scope.
Definition: amd-dbgapi.h:2842
amd_dbgapi_displaced_stepping_info_t
Displaced stepping queries that are supported by amd_dbgapi_displaced_stepping_id_t.
Definition: amd-dbgapi.h:3664
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_get_info(amd_dbgapi_displaced_stepping_id_t displaced_stepping_id, amd_dbgapi_displaced_stepping_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41
Query information about a displaced stepping buffer.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_complete(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_displaced_stepping_id_t displaced_stepping) AMD_DBGAPI_VERSION_0_42
Complete a displaced stepping buffer for a wave.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_displaced_stepping_start(amd_dbgapi_wave_id_t wave_id, const void *saved_instruction_bytes, amd_dbgapi_displaced_stepping_id_t *displaced_stepping) AMD_DBGAPI_VERSION_0_46
Associate an active displaced stepping buffer with a wave.
@ AMD_DBGAPI_DISPLACED_STEPPING_INFO_PROCESS
Return the process to which this displaced stepping belongs.
Definition: amd-dbgapi.h:3669
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_event_processed(amd_dbgapi_event_id_t event_id) AMD_DBGAPI_VERSION_0_41
Report that an event has been processed.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_event_get_info(amd_dbgapi_event_id_t event_id, amd_dbgapi_event_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41
Query information about an event.
amd_dbgapi_event_info_t
Event queries that are supported by amd_dbgapi_event_get_info.
Definition: amd-dbgapi.h:6017
amd_dbgapi_runtime_state_t
Inferior runtime state.
Definition: amd-dbgapi.h:5993
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_next_pending_event(amd_dbgapi_process_id_t process_id, amd_dbgapi_event_id_t *event_id, amd_dbgapi_event_kind_t *kind) AMD_DBGAPI_VERSION_0_41
Obtain the next pending event.
amd_dbgapi_event_kind_t
The event kinds.
Definition: amd-dbgapi.h:5843
@ AMD_DBGAPI_EVENT_INFO_CLIENT_THREAD
Return the client thread of a AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME event.
Definition: amd-dbgapi.h:6043
@ AMD_DBGAPI_EVENT_INFO_KIND
Return the event kind.
Definition: amd-dbgapi.h:6027
@ AMD_DBGAPI_EVENT_INFO_RUNTIME_STATE
Return if the runtime loaded in the inferior is supported by the library for a AMD_DBGAPI_EVENT_KIND_...
Definition: amd-dbgapi.h:6050
@ AMD_DBGAPI_EVENT_INFO_BREAKPOINT
Return the breakpoint of a AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME event.
Definition: amd-dbgapi.h:6038
@ AMD_DBGAPI_EVENT_INFO_WAVE
Return the wave of a AMD_DBGAPI_EVENT_KIND_WAVE_STOP or AMD_DBGAPI_EVENT_KIND_WAVE_COMMAND_TERMINATED...
Definition: amd-dbgapi.h:6033
@ AMD_DBGAPI_EVENT_INFO_PROCESS
Return the process to which this event belongs.
Definition: amd-dbgapi.h:6022
@ AMD_DBGAPI_RUNTIME_STATE_UNLOADED
The runtime has been unloaded.
Definition: amd-dbgapi.h:6001
@ AMD_DBGAPI_RUNTIME_STATE_LOADED_SUCCESS
The runtime has been loaded and debugging is supported by the library.
Definition: amd-dbgapi.h:5997
@ AMD_DBGAPI_RUNTIME_STATE_LOADED_ERROR_RESTRICTION
The runtime has been loaded but there is a restriction error that prevents debugging the process.
Definition: amd-dbgapi.h:6007
@ AMD_DBGAPI_EVENT_KIND_CODE_OBJECT_LIST_UPDATED
The list of code objects has changed.
Definition: amd-dbgapi.h:5888
@ AMD_DBGAPI_EVENT_KIND_WAVE_COMMAND_TERMINATED
A command for a wave was not able to complete because the wave has terminated.
Definition: amd-dbgapi.h:5866
@ AMD_DBGAPI_EVENT_KIND_QUEUE_ERROR
An event has occurred that is causing the queue to enter the error state.
Definition: amd-dbgapi.h:5947
@ AMD_DBGAPI_EVENT_KIND_WAVE_STOP
A wave has stopped.
Definition: amd-dbgapi.h:5851
@ AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME
Request to resume a host breakpoint.
Definition: amd-dbgapi.h:5901
@ AMD_DBGAPI_EVENT_KIND_RUNTIME
The runtime support in the inferior is enabled or disabled.
Definition: amd-dbgapi.h:5911
@ AMD_DBGAPI_EVENT_KIND_NONE
No event.
Definition: amd-dbgapi.h:5847
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_finalize(void) AMD_DBGAPI_VERSION_0_24
Finalize the library.
amd_dbgapi_log_level_t
The logging levels supported.
Definition: amd-dbgapi.h:6146
void AMD_DBGAPI amd_dbgapi_set_log_level(amd_dbgapi_log_level_t level) AMD_DBGAPI_VERSION_0_24
Set the logging level.
@ AMD_DBGAPI_LOG_LEVEL_NONE
Print no messages.
Definition: amd-dbgapi.h:6150
@ AMD_DBGAPI_LOG_LEVEL_VERBOSE
Print fatal error, warning, info, and verbose messages.
Definition: amd-dbgapi.h:6167
@ AMD_DBGAPI_LOG_LEVEL_INFO
Print fatal error, warning, and info messages.
Definition: amd-dbgapi.h:6163
@ AMD_DBGAPI_LOG_LEVEL_WARNING
Print fatal error and warning messages.
Definition: amd-dbgapi.h:6159
@ AMD_DBGAPI_LOG_LEVEL_FATAL_ERROR
Print fatal error messages.
Definition: amd-dbgapi.h:6155
amd_dbgapi_address_class_info_t
Source language address class queries that are supported by amd_dbgapi_address_class_get_info.
Definition: amd-dbgapi.h:4902
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_41
Return the architecture source language address class from a DWARF address class number for an archit...
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_41
Read memory.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_is_in_address_class(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id, amd_dbgapi_address_space_id_t address_space_id, amd_dbgapi_segment_address_t segment_address, amd_dbgapi_address_class_id_t address_class_id, amd_dbgapi_address_class_state_t *address_class_state) AMD_DBGAPI_VERSION_0_41
Determine if a segment address in an address space is a member of a source language address class.
uint32_t amd_dbgapi_lane_id_t
A wave lane handle.
Definition: amd-dbgapi.h:4864
amd_dbgapi_address_space_alias_t
Indication of whether addresses in two address spaces may alias.
Definition: amd-dbgapi.h:5288
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_space_get_info(amd_dbgapi_address_space_id_t address_space_id, amd_dbgapi_address_space_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_46
Query information about an address space.
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_41
Write memory.
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:5360
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_spaces_may_alias(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_41
Determine if an address in one address space may alias an address in another address space.
amd_dbgapi_address_space_access_t
Indication of how the address space is accessed.
Definition: amd-dbgapi.h:5095
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.
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:5451
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_41
Return the address space from an AMD GPU DWARF address space number for an architecture.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_convert_address_space(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_lane_id_t lane_id, amd_dbgapi_address_space_id_t source_address_space_id, amd_dbgapi_segment_address_t source_segment_address, amd_dbgapi_address_space_id_t destination_address_space_id, amd_dbgapi_segment_address_t *destination_segment_address) AMD_DBGAPI_VERSION_0_41
Convert a source segment address in the source address space into a destination segment address in th...
amd_dbgapi_address_space_info_t
Address space queries that are supported by amd_dbgapi_address_space_get_info.
Definition: amd-dbgapi.h:5121
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.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_address_class_get_info(amd_dbgapi_address_class_id_t address_class_id, amd_dbgapi_address_class_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_46
Query information about a source language address class of an architecture.
amd_dbgapi_memory_precision_t
Memory access precision.
Definition: amd-dbgapi.h:5743
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_ADDRESS_CLASS_INFO_NAME
Return the source language address class name.
Definition: amd-dbgapi.h:4914
@ AMD_DBGAPI_ADDRESS_CLASS_INFO_ADDRESS_SPACE
Return the architecture specific address space that is used to implement a pointer or reference to th...
Definition: amd-dbgapi.h:4923
@ AMD_DBGAPI_ADDRESS_CLASS_INFO_DWARF
Return the AMD GPU DWARF address class number for the address class' architecture.
Definition: amd-dbgapi.h:4928
@ AMD_DBGAPI_ADDRESS_CLASS_INFO_ARCHITECTURE
Return the architecture to which this address class belongs.
Definition: amd-dbgapi.h:4907
@ AMD_DBGAPI_ADDRESS_SPACE_ALIAS_NONE
No addresses in the address spaces can alias.
Definition: amd-dbgapi.h:5292
@ AMD_DBGAPI_ADDRESS_SPACE_ALIAS_MAY
Addresses in the address spaces may alias.
Definition: amd-dbgapi.h:5296
@ AMD_DBGAPI_ADDRESS_SPACE_ACCESS_DISPATCH_CONSTANT
The address space is only read the waves of a kernel dispatch.
Definition: amd-dbgapi.h:5110
@ AMD_DBGAPI_ADDRESS_SPACE_ACCESS_PROGRAM_CONSTANT
The address space is read only.
Definition: amd-dbgapi.h:5105
@ AMD_DBGAPI_ADDRESS_SPACE_ACCESS_ALL
The address space supports all accesses.
Definition: amd-dbgapi.h:5100
@ AMD_DBGAPI_ADDRESS_CLASS_STATE_NOT_MEMBER
The segment address in the address space is not a member of the source language address class.
Definition: amd-dbgapi.h:5456
@ AMD_DBGAPI_ADDRESS_CLASS_STATE_MEMBER
The segment address in the address space is a member of the source language address class.
Definition: amd-dbgapi.h:5461
@ AMD_DBGAPI_ADDRESS_SPACE_INFO_ACCESS
Return the address space access.
Definition: amd-dbgapi.h:5148
@ AMD_DBGAPI_ADDRESS_SPACE_INFO_DWARF
Return the AMD GPU DWARF address space number for the address space's architecture.
Definition: amd-dbgapi.h:5153
@ AMD_DBGAPI_ADDRESS_SPACE_INFO_ADDRESS_SIZE
Return the byte size of an address in the address space.
Definition: amd-dbgapi.h:5138
@ AMD_DBGAPI_ADDRESS_SPACE_INFO_NULL_ADDRESS
Return the NULL segment address value in the address space.
Definition: amd-dbgapi.h:5143
@ AMD_DBGAPI_ADDRESS_SPACE_INFO_ARCHITECTURE
Return the architecture to which this address space belongs.
Definition: amd-dbgapi.h:5126
@ AMD_DBGAPI_ADDRESS_SPACE_INFO_NAME
Return the address space name.
Definition: amd-dbgapi.h:5133
@ AMD_DBGAPI_MEMORY_PRECISION_NONE
Memory instructions execute normally and a wave does not wait for the memory access to complete.
Definition: amd-dbgapi.h:5748
@ AMD_DBGAPI_MEMORY_PRECISION_PRECISE
A wave waits for memory instructions to complete before executing further instructions.
Definition: amd-dbgapi.h:5753
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.
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.
amd_dbgapi_wave_creation_t
The kinds of wave creation supported by the hardware.
Definition: amd-dbgapi.h:1910
struct amd_dbgapi_client_process_s * amd_dbgapi_client_process_id_t
Opaque client process handle.
Definition: amd-dbgapi.h:1575
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_47
Set the progress required for a process.
amd_dbgapi_progress_t
The kinds of progress supported by the library.
Definition: amd-dbgapi.h:1837
amd_dbgapi_process_info_t
Process queries that are supported by amd_dbgapi_process_get_info.
Definition: amd-dbgapi.h:1604
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.
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_41
Query information about a process.
@ AMD_DBGAPI_WAVE_CREATION_NORMAL
Normal wave creation allows new waves to be created.
Definition: amd-dbgapi.h:1914
@ AMD_DBGAPI_WAVE_CREATION_STOP
Stop wave creation prevents new waves from being created.
Definition: amd-dbgapi.h:1918
@ AMD_DBGAPI_PROGRESS_NO_FORWARD
No forward progress is needed.
Definition: amd-dbgapi.h:1867
@ AMD_DBGAPI_PROGRESS_NORMAL
Normal progress is needed.
Definition: amd-dbgapi.h:1843
@ AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_COUNT
Return the number of data watchpoints supported by the process.
Definition: amd-dbgapi.h:1615
@ AMD_DBGAPI_PROCESS_INFO_PRECISE_MEMORY_SUPPORTED
Return if the architectures of all the agents of a process support controlling memory precision.
Definition: amd-dbgapi.h:1627
@ AMD_DBGAPI_PROCESS_INFO_NOTIFIER
The notifier for the process that indicates if pending events are available.
Definition: amd-dbgapi.h:1609
@ AMD_DBGAPI_PROCESS_INFO_WATCHPOINT_SHARE
Return how watchpoints are shared between processes.
Definition: amd-dbgapi.h:1621
@ AMD_DBGAPI_PROCESS_INFO_OS_ID
Native operating system process ID.
Definition: amd-dbgapi.h:1633
amd_dbgapi_queue_state_t
Queue state.
Definition: amd-dbgapi.h:2459
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_queue_packet_list(amd_dbgapi_queue_id_t queue_id, amd_dbgapi_os_queue_packet_id_t *read_packet_id, amd_dbgapi_os_queue_packet_id_t *write_packet_id, size_t *packets_byte_size, void **packets_bytes) AMD_DBGAPI_VERSION_0_41
Return the packets for a queue.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_queue_list(amd_dbgapi_process_id_t process_id, size_t *queue_count, amd_dbgapi_queue_id_t **queues, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_41
Return the list of queues.
amd_dbgapi_queue_error_reason_t
A bit mask of the reasons that a queue is in error.
Definition: amd-dbgapi.h:2478
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_queue_get_info(amd_dbgapi_queue_id_t queue_id, amd_dbgapi_queue_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41
Query information about a queue.
amd_dbgapi_queue_info_t
Queue queries that are supported by amd_dbgapi_queue_get_info.
Definition: amd-dbgapi.h:2363
@ AMD_DBGAPI_QUEUE_STATE_VALID
Queue is in a valid state.
Definition: amd-dbgapi.h:2463
@ AMD_DBGAPI_QUEUE_STATE_ERROR
Queue is in an error state.
Definition: amd-dbgapi.h:2471
@ AMD_DBGAPI_QUEUE_ERROR_REASON_NONE
If none of the bits are set, then the queue is not in the error state.
Definition: amd-dbgapi.h:2482
@ AMD_DBGAPI_QUEUE_ERROR_REASON_ASSERT_TRAP
A wave on the queue had an assert trap.
Definition: amd-dbgapi.h:2494
@ AMD_DBGAPI_QUEUE_ERROR_REASON_WAVE_ERROR
A wave on the queue executed an instruction that caused an error.
Definition: amd-dbgapi.h:2500
@ AMD_DBGAPI_QUEUE_ERROR_REASON_RESERVED
A reserved value only present to ensure that the underlying representation of this enumeration type i...
Definition: amd-dbgapi.h:2505
@ AMD_DBGAPI_QUEUE_ERROR_REASON_INVALID_PACKET
A packet on the queue is invalid.
Definition: amd-dbgapi.h:2486
@ AMD_DBGAPI_QUEUE_ERROR_REASON_MEMORY_VIOLATION
A wave on the queue had a memory violation.
Definition: amd-dbgapi.h:2490
@ AMD_DBGAPI_QUEUE_INFO_ARCHITECTURE
Return the architecture of this queue.
Definition: amd-dbgapi.h:2378
@ AMD_DBGAPI_QUEUE_INFO_PROCESS
Return the process to which this queue belongs.
Definition: amd-dbgapi.h:2373
@ AMD_DBGAPI_QUEUE_INFO_TYPE
Return the queue type.
Definition: amd-dbgapi.h:2383
@ AMD_DBGAPI_QUEUE_INFO_ADDRESS
Return the base address of the memory holding the queue packets.
Definition: amd-dbgapi.h:2400
@ AMD_DBGAPI_QUEUE_INFO_STATE
Return the queue state.
Definition: amd-dbgapi.h:2388
@ AMD_DBGAPI_QUEUE_INFO_AGENT
Return the agent to which this queue belongs.
Definition: amd-dbgapi.h:2368
@ AMD_DBGAPI_QUEUE_INFO_SIZE
Return the size in bytes of the memory holding the queue packets.
Definition: amd-dbgapi.h:2405
@ AMD_DBGAPI_QUEUE_INFO_ERROR_REASON
Return the reason the queue is in error as a bit set.
Definition: amd-dbgapi.h:2395
@ AMD_DBGAPI_QUEUE_INFO_OS_ID
Native operating system queue ID.
Definition: amd-dbgapi.h:2410
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_write_register(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t offset, amd_dbgapi_size_t value_size, const void *value) AMD_DBGAPI_VERSION_0_42
Write a register.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_prefetch_register(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t register_count) AMD_DBGAPI_VERSION_0_41
Prefetch register values.
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_41
Return a register handle from an AMD GPU DWARF register number for an architecture.
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_status_t AMD_DBGAPI amd_dbgapi_register_is_in_register_class(amd_dbgapi_register_class_id_t register_class_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_register_class_state_t *register_class_state) AMD_DBGAPI_VERSION_0_41
Determine if a register is a member of a register class.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_architecture_register_class_get_info(amd_dbgapi_register_class_id_t register_class_id, amd_dbgapi_register_class_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41
Query information about a register class of an architecture.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_register_list(amd_dbgapi_wave_id_t wave_id, size_t *register_count, amd_dbgapi_register_id_t **registers) AMD_DBGAPI_VERSION_0_41
Report the list of registers supported by a wave.
amd_dbgapi_register_info_t
Register queries that are supported by amd_dbgapi_register_get_info.
Definition: amd-dbgapi.h:4301
amd_dbgapi_register_class_info_t
Register class queries that are supported by amd_dbgapi_architecture_register_class_get_info.
Definition: amd-dbgapi.h:4173
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_register_exists(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_register_exists_t *exists) AMD_DBGAPI_VERSION_0_41
Query if a register exists for a wave.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_read_register(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_register_id_t register_id, amd_dbgapi_size_t offset, amd_dbgapi_size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41
Read a register.
amd_dbgapi_register_exists_t
Indication of if a wave has a register.
Definition: amd-dbgapi.h:4395
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_register_get_info(amd_dbgapi_register_id_t register_id, amd_dbgapi_register_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_46
Query information about a register.
amd_dbgapi_register_class_state_t
Indication of whether a register is a member of a register class.
Definition: amd-dbgapi.h:4582
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.
@ AMD_DBGAPI_REGISTER_INFO_ARCHITECTURE
Return the architecture to which this register belongs.
Definition: amd-dbgapi.h:4306
@ AMD_DBGAPI_REGISTER_INFO_NAME
Return the register name.
Definition: amd-dbgapi.h:4313
@ AMD_DBGAPI_REGISTER_INFO_SIZE
Return the size of the register in bytes.
Definition: amd-dbgapi.h:4318
@ AMD_DBGAPI_REGISTER_INFO_DWARF
Return the AMD GPU DWARF register number for the register's architecture.
Definition: amd-dbgapi.h:4345
@ AMD_DBGAPI_REGISTER_INFO_TYPE
Return the register type as a C style type string.
Definition: amd-dbgapi.h:4340
@ AMD_DBGAPI_REGISTER_CLASS_INFO_ARCHITECTURE
Return the architecture to which this register class belongs.
Definition: amd-dbgapi.h:4178
@ AMD_DBGAPI_REGISTER_CLASS_INFO_NAME
Return the register class name.
Definition: amd-dbgapi.h:4185
@ AMD_DBGAPI_REGISTER_ABSENT
The wave does not have the register.
Definition: amd-dbgapi.h:4399
@ AMD_DBGAPI_REGISTER_PRESENT
The wave has the register.
Definition: amd-dbgapi.h:4403
@ AMD_DBGAPI_REGISTER_CLASS_STATE_NOT_MEMBER
The register is not a member of the register class.
Definition: amd-dbgapi.h:4586
@ AMD_DBGAPI_REGISTER_CLASS_STATE_MEMBER
The register is a member of the register class.
Definition: amd-dbgapi.h:4590
amd_dbgapi_status_t
AMD debugger API status codes.
Definition: amd-dbgapi.h:694
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.
@ AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_CLASS_ID
The register class handle is invalid.
Definition: amd-dbgapi.h:843
@ AMD_DBGAPI_STATUS_ERROR_INVALID_LANE_ID
The lane handle is invalid.
Definition: amd-dbgapi.h:851
@ AMD_DBGAPI_STATUS_ERROR_INVALID_BREAKPOINT_ID
The breakpoint handle is invalid.
Definition: amd-dbgapi.h:879
@ AMD_DBGAPI_STATUS_ERROR_INVALID_CODE_OBJECT_ID
The code object handle is invalid.
Definition: amd-dbgapi.h:782
@ AMD_DBGAPI_STATUS_ERROR_NO_WATCHPOINT_AVAILABLE
No more watchpoints available.
Definition: amd-dbgapi.h:839
@ AMD_DBGAPI_STATUS_ERROR_INVALID_SHARED_LIBRARY_ID
The shared library handle is invalid.
Definition: amd-dbgapi.h:875
@ AMD_DBGAPI_STATUS_ERROR_INVALID_WAVE_ID
The wave handle is invalid.
Definition: amd-dbgapi.h:806
@ AMD_DBGAPI_STATUS_ERROR_MEMORY_ACCESS
An error occurred while trying to access memory in the inferior.
Definition: amd-dbgapi.h:863
@ AMD_DBGAPI_STATUS_ERROR_ILLEGAL_INSTRUCTION
The bytes being disassembled are not a legal instruction.
Definition: amd-dbgapi.h:778
@ AMD_DBGAPI_STATUS_SUCCESS
The function has executed successfully.
Definition: amd-dbgapi.h:698
@ AMD_DBGAPI_STATUS_ERROR_NOT_SUPPORTED
The operation is not supported.
Definition: amd-dbgapi.h:734
@ AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_ACTIVE
The wave has an active displaced stepping buffer.
Definition: amd-dbgapi.h:908
@ AMD_DBGAPI_STATUS_ERROR_ALREADY_INITIALIZED
The library is already initialized.
Definition: amd-dbgapi.h:746
@ AMD_DBGAPI_STATUS_ERROR_WAVE_OUTSTANDING_STOP
The wave has an outstanding stop request.
Definition: amd-dbgapi.h:818
@ AMD_DBGAPI_STATUS_ERROR_INVALID_AGENT_ID
The agent handle is invalid.
Definition: amd-dbgapi.h:794
@ AMD_DBGAPI_STATUS_ERROR_NOT_INITIALIZED
The library is not initialized.
Definition: amd-dbgapi.h:750
@ AMD_DBGAPI_STATUS_ERROR_SYMBOL_NOT_FOUND
The symbol was not found.
Definition: amd-dbgapi.h:900
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT_COMPATIBILITY
An invalid combination of arguments was given to the function.
Definition: amd-dbgapi.h:742
@ AMD_DBGAPI_STATUS_ERROR_INVALID_WATCHPOINT_ID
The watchpoint handle is invalid.
Definition: amd-dbgapi.h:835
@ AMD_DBGAPI_STATUS_ERROR_RESUME_DISPLACED_STEPPING
The wave cannot be resumed in the manner requested due to displaced stepping restrictions.
Definition: amd-dbgapi.h:913
@ AMD_DBGAPI_STATUS_ERROR_PROCESS_EXITED
The native operating system process associated with a client process has exited.
Definition: amd-dbgapi.h:892
@ AMD_DBGAPI_STATUS_ERROR_INVALID_CLIENT_PROCESS_ID
The client process handle is invalid.
Definition: amd-dbgapi.h:887
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ARCHITECTURE_ID
The architecture handle is invalid.
Definition: amd-dbgapi.h:774
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT
An invalid argument was given to the function.
Definition: amd-dbgapi.h:738
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_CLASS_ID
The address class handle is invalid.
Definition: amd-dbgapi.h:855
@ AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_BUFFER_UNAVAILABLE
No more displaced stepping buffers are available that are suitable for the requested wave.
Definition: amd-dbgapi.h:831
@ AMD_DBGAPI_STATUS_ERROR_INVALID_EVENT_ID
The event handle is invalid.
Definition: amd-dbgapi.h:871
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS
The address is not within the shared library.
Definition: amd-dbgapi.h:904
@ AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_STOPPED
The wave is not stopped.
Definition: amd-dbgapi.h:810
@ AMD_DBGAPI_STATUS_ERROR_WAVE_STOPPED
The wave is stopped.
Definition: amd-dbgapi.h:814
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_SPACE_ID
The address space handle is invalid.
Definition: amd-dbgapi.h:859
@ AMD_DBGAPI_STATUS_ERROR_INVALID_PROCESS_ID
The process handle is invalid.
Definition: amd-dbgapi.h:790
@ AMD_DBGAPI_STATUS_ERROR_WAVE_NOT_RESUMABLE
The wave cannot be resumed.
Definition: amd-dbgapi.h:822
@ AMD_DBGAPI_STATUS_ERROR_LIBRARY_NOT_LOADED
The shared library is not currently loaded.
Definition: amd-dbgapi.h:896
@ AMD_DBGAPI_STATUS_ERROR_RESTRICTION
There is a restriction error that prevents debugging the process.
Definition: amd-dbgapi.h:766
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ADDRESS_SPACE_CONVERSION
The segment address cannot be converted to the requested address space.
Definition: amd-dbgapi.h:867
@ AMD_DBGAPI_STATUS_ERROR_INVALID_ELF_AMDGPU_MACHINE
The ELF AMD GPU machine value is invalid or unsupported.
Definition: amd-dbgapi.h:786
@ AMD_DBGAPI_STATUS_FATAL
A fatal error has occurred.
Definition: amd-dbgapi.h:724
@ AMD_DBGAPI_STATUS_ERROR_INVALID_DISPLACED_STEPPING_ID
The displaced stepping handle is invalid.
Definition: amd-dbgapi.h:826
@ AMD_DBGAPI_STATUS_ERROR_CLIENT_CALLBACK
A callback to the client reported an error.
Definition: amd-dbgapi.h:883
@ AMD_DBGAPI_STATUS_ERROR_ALREADY_ATTACHED
The process is already attached to the given inferior process.
Definition: amd-dbgapi.h:770
@ AMD_DBGAPI_STATUS_ERROR_INVALID_QUEUE_ID
The queue handle is invalid.
Definition: amd-dbgapi.h:798
@ AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_ID
The register handle is invalid.
Definition: amd-dbgapi.h:847
@ AMD_DBGAPI_STATUS_ERROR_INVALID_DISPATCH_ID
The dispatch handle is invalid.
Definition: amd-dbgapi.h:802
@ AMD_DBGAPI_STATUS_ERROR
A generic error has occurred.
Definition: amd-dbgapi.h:702
@ AMD_DBGAPI_STATUS_ERROR_UNIMPLEMENTED
The operation is not currently implemented.
Definition: amd-dbgapi.h:730
#define AMD_DBGAPI_VERSION_0_42
The function was introduced in version 0.42 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:469
#define AMD_DBGAPI_VERSION_0_47
The function was introduced in version 0.47 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:481
#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:457
#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:451
#define AMD_DBGAPI_VERSION_0_46
The function was introduced in version 0.46 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:475
#define AMD_DBGAPI_VERSION_0_41
The function was introduced in version 0.41 of the interface and has the symbol version string of "AM...
Definition: amd-dbgapi.h:463
const char AMD_DBGAPI * amd_dbgapi_get_build_name(void) AMD_DBGAPI_VERSION_0_24
Query the installed library build name.
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.
amd_dbgapi_watchpoint_info_t
Watchpoint queries that are supported by amd_dbgapi_watchpoint_get_info.
Definition: amd-dbgapi.h:3907
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_41
Set a hardware data watchpoint.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_watchpoint_get_info(amd_dbgapi_watchpoint_id_t watchpoint_id, amd_dbgapi_watchpoint_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41
Query information about a watchpoint.
amd_dbgapi_watchpoint_kind_t
Watchpoint memory access kinds.
Definition: amd-dbgapi.h:3991
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_watchpoint_share_kind_t
The way watchpoints are shared between processes.
Definition: amd-dbgapi.h:3965
@ AMD_DBGAPI_WATCHPOINT_INFO_PROCESS
Return the process to which this watchpoint belongs.
Definition: amd-dbgapi.h:3912
@ AMD_DBGAPI_WATCHPOINT_KIND_STORE_AND_RMW
Write access by store instructions or read-modify-write access by atomic instructions.
Definition: amd-dbgapi.h:4000
@ AMD_DBGAPI_WATCHPOINT_KIND_ALL
Read, write, or read-modify-write access by load, store, or atomic instructions.
Definition: amd-dbgapi.h:4009
@ AMD_DBGAPI_WATCHPOINT_KIND_LOAD
Read access by load instructions.
Definition: amd-dbgapi.h:3995
@ AMD_DBGAPI_WATCHPOINT_KIND_RMW
Read-modify-write access by atomic instructions.
Definition: amd-dbgapi.h:4004
@ AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSHARED
The watchpoints are not shared across processes.
Definition: amd-dbgapi.h:3975
@ AMD_DBGAPI_WATCHPOINT_SHARE_KIND_SHARED
The watchpoints of a process are shared between all processes.
Definition: amd-dbgapi.h:3981
@ AMD_DBGAPI_WATCHPOINT_SHARE_KIND_UNSUPPORTED
Watchpoints are not supported.
Definition: amd-dbgapi.h:3969
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_stop(amd_dbgapi_wave_id_t wave_id) AMD_DBGAPI_VERSION_0_41
Request a wave to stop executing.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_process_wave_list(amd_dbgapi_process_id_t process_id, size_t *wave_count, amd_dbgapi_wave_id_t **waves, amd_dbgapi_changed_t *changed) AMD_DBGAPI_VERSION_0_41
Return the list of existing waves.
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_resume(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_resume_mode_t resume_mode) AMD_DBGAPI_VERSION_0_46
Resume execution of a stopped wave.
amd_dbgapi_wave_state_t
The execution state of a wave.
Definition: amd-dbgapi.h:3069
amd_dbgapi_resume_mode_t
The mode in which to resuming the execution of a wave.
Definition: amd-dbgapi.h:3424
amd_dbgapi_status_t AMD_DBGAPI amd_dbgapi_wave_get_info(amd_dbgapi_wave_id_t wave_id, amd_dbgapi_wave_info_t query, size_t value_size, void *value) AMD_DBGAPI_VERSION_0_41
Query information about a wave.
amd_dbgapi_wave_info_t
Wave queries that are supported by amd_dbgapi_wave_get_info.
Definition: amd-dbgapi.h:2926
amd_dbgapi_wave_stop_reason_t
A bit mask of the reasons that a wave stopped.
Definition: amd-dbgapi.h:3101
@ AMD_DBGAPI_WAVE_STATE_STOP
The wave is stopped.
Definition: amd-dbgapi.h:3091
@ AMD_DBGAPI_WAVE_STATE_SINGLE_STEP
The wave is running in single-step mode.
Definition: amd-dbgapi.h:3078
@ AMD_DBGAPI_WAVE_STATE_RUN
The wave is running.
Definition: amd-dbgapi.h:3073
@ AMD_DBGAPI_RESUME_MODE_SINGLE_STEP
Resume execution in in single step mode.
Definition: amd-dbgapi.h:3432
@ AMD_DBGAPI_RESUME_MODE_NORMAL
Resume normal execution.
Definition: amd-dbgapi.h:3428
@ AMD_DBGAPI_WAVE_INFO_ARCHITECTURE
Return the architecture of this wave.
Definition: amd-dbgapi.h:2984
@ AMD_DBGAPI_WAVE_INFO_DISPATCH
Return the dispatch to which this wave belongs.
Definition: amd-dbgapi.h:2962
@ AMD_DBGAPI_WAVE_INFO_QUEUE
Return the queue to which this wave belongs.
Definition: amd-dbgapi.h:2968
@ AMD_DBGAPI_WAVE_INFO_WAVE_NUMBER_IN_WORK_GROUP
The wave's number in the workgroup.
Definition: amd-dbgapi.h:3011
@ AMD_DBGAPI_WAVE_INFO_WORK_GROUP_COORD
The wave workgroup coordinate in the dispatch grid dimensions.
Definition: amd-dbgapi.h:3004
@ AMD_DBGAPI_WAVE_INFO_EXEC_MASK
Return the current execution mask of the wave.
Definition: amd-dbgapi.h:2998
@ AMD_DBGAPI_WAVE_INFO_STATE
Return the wave's state.
Definition: amd-dbgapi.h:2931
@ AMD_DBGAPI_WAVE_INFO_PROCESS
Return the process to which this wave belongs.
Definition: amd-dbgapi.h:2979
@ AMD_DBGAPI_WAVE_INFO_AGENT
Return the agent to which this wave belongs.
Definition: amd-dbgapi.h:2974
@ AMD_DBGAPI_WAVE_INFO_WATCHPOINTS
Return the watchpoint(s) the wave triggered.
Definition: amd-dbgapi.h:2951
@ AMD_DBGAPI_WAVE_INFO_LANE_COUNT
The number of lanes supported by the wave.
Definition: amd-dbgapi.h:3016
@ AMD_DBGAPI_WAVE_INFO_PC
Return the current program counter value of the wave.
Definition: amd-dbgapi.h:2990
@ AMD_DBGAPI_WAVE_INFO_STOP_REASON
Return the reason the wave stopped as a bit set.
Definition: amd-dbgapi.h:2938
@ AMD_DBGAPI_WAVE_STOP_REASON_FP_DIVIDE_BY_0
The wave stopped due to triggering an enabled floating point divide by zero exception.
Definition: amd-dbgapi.h:3150
@ AMD_DBGAPI_WAVE_STOP_REASON_WATCHPOINT
The wave stopped due to triggering a data watchpoint.
Definition: amd-dbgapi.h:3124
@ AMD_DBGAPI_WAVE_STOP_REASON_MEMORY_VIOLATION
The wave stopped due to triggering a memory violation.
Definition: amd-dbgapi.h:3235
@ AMD_DBGAPI_WAVE_STOP_REASON_SINGLE_STEP
The wave stopped due to completing an instruction single-step.
Definition: amd-dbgapi.h:3128
@ AMD_DBGAPI_WAVE_STOP_REASON_ILLEGAL_INSTRUCTION
The wave stopped due to executing an illegal instruction.
Definition: amd-dbgapi.h:3245
@ AMD_DBGAPI_WAVE_STOP_REASON_DEBUG_TRAP
The wave stopped due to executing a debug trap instruction.
Definition: amd-dbgapi.h:3190
@ AMD_DBGAPI_WAVE_STOP_REASON_FP_INPUT_DENORMAL
The wave stopped due to triggering an enabled floating point input denormal exception.
Definition: amd-dbgapi.h:3145
@ AMD_DBGAPI_WAVE_STOP_REASON_ECC_ERROR
The wave stopped due to detecting an unrecoverable ECC error.
Definition: amd-dbgapi.h:3260
@ AMD_DBGAPI_WAVE_STOP_REASON_FATAL_HALT
The wave stopped after causing a hardware fatal halt.
Definition: amd-dbgapi.h:3269
@ AMD_DBGAPI_WAVE_STOP_REASON_ASSERT_TRAP
The wave stopped due to executing an assert trap instruction.
Definition: amd-dbgapi.h:3208
@ AMD_DBGAPI_WAVE_STOP_REASON_NONE
If none of the bits are set, then amd_dbgapi_wave_stop stopped the wave.
Definition: amd-dbgapi.h:3106
@ AMD_DBGAPI_WAVE_STOP_REASON_BREAKPOINT
The wave stopped due to executing a breakpoint instruction.
Definition: amd-dbgapi.h:3112
@ AMD_DBGAPI_WAVE_STOP_REASON_XNACK_ERROR
The wave stopped with an XNACK error.
Definition: amd-dbgapi.h:3278
@ AMD_DBGAPI_WAVE_STOP_REASON_FP_INVALID_OPERATION
The wave stopped due to triggering an enabled floating point invalid operation exception.
Definition: amd-dbgapi.h:3170
@ AMD_DBGAPI_WAVE_STOP_REASON_RESERVED
A reserved value only present to ensure that the underlying representation of this enumeration type i...
Definition: amd-dbgapi.h:3283
@ AMD_DBGAPI_WAVE_STOP_REASON_QUEUE_ERROR
The wave belongs to a queue that is in the error state.
Definition: amd-dbgapi.h:3140
@ AMD_DBGAPI_WAVE_STOP_REASON_TRAP
The wave stopped due to executing an trap instruction other than the AMD_DBGAPI_WAVE_STOP_REASON_DEBU...
Definition: amd-dbgapi.h:3220
@ AMD_DBGAPI_WAVE_STOP_REASON_INT_DIVIDE_BY_0
The wave stopped due to triggering an enabled integer divide by zero exception.
Definition: amd-dbgapi.h:3175
@ AMD_DBGAPI_WAVE_STOP_REASON_FP_UNDERFLOW
The wave stopped due to triggering an enabled floating point underflow exception.
Definition: amd-dbgapi.h:3160
@ AMD_DBGAPI_WAVE_STOP_REASON_FP_INEXACT
The wave stopped due to triggering an enabled floating point inexact exception.
Definition: amd-dbgapi.h:3165
@ AMD_DBGAPI_WAVE_STOP_REASON_FP_OVERFLOW
The wave stopped due to triggering an enabled floating point overflow exception.
Definition: amd-dbgapi.h:3155
Opaque source language address class handle.
Definition: amd-dbgapi.h:4885
uint64_t handle
Definition: amd-dbgapi.h:4886
Opaque address space handle.
Definition: amd-dbgapi.h:5074
uint64_t handle
Definition: amd-dbgapi.h:5075
Opaque agent handle.
Definition: amd-dbgapi.h:2169
uint64_t handle
Definition: amd-dbgapi.h:2170
Opaque architecture handle.
Definition: amd-dbgapi.h:1090
uint64_t handle
Definition: amd-dbgapi.h:1091
Opaque breakpoint handle.
Definition: amd-dbgapi.h:6354
uint64_t handle
Definition: amd-dbgapi.h:6355
Callbacks that the client of the library must provide.
Definition: amd-dbgapi.h:6501
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:6561
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:6750
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:6662
void(* deallocate_memory)(void *data)
Deallocate memory that was allocated by amd_dbgapi_callbacks_s::allocate_memory.
Definition: amd-dbgapi.h:6532
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:6599
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:6627
void(* log_message)(amd_dbgapi_log_level_t level, const char *message)
Report a log message.
Definition: amd-dbgapi.h:6762
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:6714
Opaque code object handle.
Definition: amd-dbgapi.h:1976
uint64_t handle
Definition: amd-dbgapi.h:1977
Instruction information for direct call instructions.
Definition: amd-dbgapi.h:4820
amd_dbgapi_global_address_t target_address
Definition: amd-dbgapi.h:4821
Opaque dispatch handle.
Definition: amd-dbgapi.h:2649
uint64_t handle
Definition: amd-dbgapi.h:2650
Opaque displaced stepping handle.
Definition: amd-dbgapi.h:3646
uint64_t handle
Definition: amd-dbgapi.h:3647
Opaque event handle.
Definition: amd-dbgapi.h:5830
uint64_t handle
Definition: amd-dbgapi.h:5831
Opaque process handle.
Definition: amd-dbgapi.h:1588
uint64_t handle
Definition: amd-dbgapi.h:1589
Opaque queue handle.
Definition: amd-dbgapi.h:2347
uint64_t handle
Definition: amd-dbgapi.h:2348
Opaque register class handle.
Definition: amd-dbgapi.h:4156
uint64_t handle
Definition: amd-dbgapi.h:4157
Opaque register handle.
Definition: amd-dbgapi.h:4285
uint64_t handle
Definition: amd-dbgapi.h:4286
Opaque shared library handle.
Definition: amd-dbgapi.h:6216
uint64_t handle
Definition: amd-dbgapi.h:6217
Opaque hardware data watchpoint handle.
Definition: amd-dbgapi.h:3891
uint64_t handle
Definition: amd-dbgapi.h:3892
A set of watchpoints.
Definition: amd-dbgapi.h:4019
amd_dbgapi_watchpoint_id_t * watchpoint_ids
Definition: amd-dbgapi.h:4021
size_t count
Definition: amd-dbgapi.h:4020
Opaque wave handle.
Definition: amd-dbgapi.h:2910
uint64_t handle
Definition: amd-dbgapi.h:2911