= Debugging To aid developers in tracking down errors in the application's use of Vulkan, particularly in combination with an external debugger or profiler, _debugging extensions_ may be available. [open,refpage='VkObjectType',desc='Specify an enumeration to track object handle types',type='enums'] -- The elink:VkObjectType enumeration defines values, each of which corresponds to a specific Vulkan handle type. These values can: be used to associate debug information with a particular type of object through one or more extensions. include::../api/enums/VkObjectType.txt[] [[debugging-object-types]] .VkObjectType and Vulkan Handle Relationship [width="80%",cols="<35,<23",options="header"] |==== | elink:VkObjectType | Vulkan Handle Type | ename:VK_OBJECT_TYPE_UNKNOWN | Unknown/Undefined Handle | ename:VK_OBJECT_TYPE_INSTANCE | slink:VkInstance | ename:VK_OBJECT_TYPE_PHYSICAL_DEVICE | slink:VkPhysicalDevice | ename:VK_OBJECT_TYPE_DEVICE | slink:VkDevice | ename:VK_OBJECT_TYPE_QUEUE | slink:VkQueue | ename:VK_OBJECT_TYPE_SEMAPHORE | slink:VkSemaphore | ename:VK_OBJECT_TYPE_COMMAND_BUFFER | slink:VkCommandBuffer | ename:VK_OBJECT_TYPE_FENCE | slink:VkFence | ename:VK_OBJECT_TYPE_DEVICE_MEMORY | slink:VkDeviceMemory | ename:VK_OBJECT_TYPE_BUFFER | slink:VkBuffer | ename:VK_OBJECT_TYPE_IMAGE | slink:VkImage | ename:VK_OBJECT_TYPE_EVENT | slink:VkEvent | ename:VK_OBJECT_TYPE_QUERY_POOL | slink:VkQueryPool | ename:VK_OBJECT_TYPE_BUFFER_VIEW | slink:VkBufferView | ename:VK_OBJECT_TYPE_IMAGE_VIEW | slink:VkImageView | ename:VK_OBJECT_TYPE_SHADER_MODULE | slink:VkShaderModule | ename:VK_OBJECT_TYPE_PIPELINE_CACHE | slink:VkPipelineCache | ename:VK_OBJECT_TYPE_PIPELINE_LAYOUT | slink:VkPipelineLayout | ename:VK_OBJECT_TYPE_RENDER_PASS | slink:VkRenderPass | ename:VK_OBJECT_TYPE_PIPELINE | slink:VkPipeline | ename:VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT | slink:VkDescriptorSetLayout | ename:VK_OBJECT_TYPE_SAMPLER | slink:VkSampler | ename:VK_OBJECT_TYPE_DESCRIPTOR_POOL | slink:VkDescriptorPool | ename:VK_OBJECT_TYPE_DESCRIPTOR_SET | slink:VkDescriptorSet | ename:VK_OBJECT_TYPE_FRAMEBUFFER | slink:VkFramebuffer | ename:VK_OBJECT_TYPE_COMMAND_POOL | slink:VkCommandPool ifdef::VK_KHR_surface[] | ename:VK_OBJECT_TYPE_SURFACE_KHR | slink:VkSurfaceKHR endif::VK_KHR_surface[] ifdef::VK_KHR_surface[] | ename:VK_OBJECT_TYPE_SWAPCHAIN_KHR | slink:VkSwapchainKHR endif::VK_KHR_surface[] ifdef::VK_KHR_display[] | ename:VK_OBJECT_TYPE_DISPLAY_KHR | slink:VkDisplayKHR | ename:VK_OBJECT_TYPE_DISPLAY_MODE_KHR | slink:VkDisplayModeKHR endif::VK_KHR_display[] ifdef::VK_EXT_debug_report[] | ename:VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT | slink:VkDebugReportCallbackEXT endif::VK_EXT_debug_report[] ifdef::VK_VERSION_1_1,VK_KHR_descriptor_update_template[] | ename:VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE | slink:VkDescriptorUpdateTemplate endif::VK_VERSION_1_1,VK_KHR_descriptor_update_template[] ifdef::VK_NVX_device_generated_commands[] | ename:VK_OBJECT_TYPE_OBJECT_TABLE_NVX | slink:VkObjectTableNVX | ename:VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX | slink:VkIndirectCommandsLayoutNVX endif::VK_NVX_device_generated_commands[] ifdef::VK_EXT_validation_cache[] | ename:VK_OBJECT_TYPE_VALIDATION_CACHE_EXT | slink:VkValidationCacheEXT endif::VK_EXT_validation_cache[] |==== -- If this Specification was generated with any such extensions included, they will be described in the remainder of this chapter. ifdef::VK_EXT_debug_utils[] include::VK_EXT_debug_utils.txt[] endif::VK_EXT_debug_utils[] ifdef::VK_EXT_debug_marker[] include::VK_EXT_debug_marker.txt[] endif::VK_EXT_debug_marker[] ifdef::VK_EXT_debug_report[] include::VK_EXT_debug_report.txt[] endif::VK_EXT_debug_report[]