diff --git a/src/core/intercept_queue.h b/src/core/intercept_queue.h index 0d184e557d..0501bd6fcf 100644 --- a/src/core/intercept_queue.h +++ b/src/core/intercept_queue.h @@ -141,23 +141,23 @@ class InterceptQueue { const hsa_kernel_dispatch_packet_t* dispatch_packet = reinterpret_cast(packet); + const char* kernel_name = NULL; if (GetHeaderType(packet) == HSA_PACKET_TYPE_KERNEL_DISPATCH) { uint64_t kernel_object = dispatch_packet->kernel_object; const amd_kernel_code_t* kernel_code = GetKernelCode(kernel_object); - const char* kernel_name = (GetHeaderType(packet) == HSA_PACKET_TYPE_KERNEL_DISPATCH) ? + kernel_name = (GetHeaderType(packet) == HSA_PACKET_TYPE_KERNEL_DISPATCH) ? QueryKernelName(kernel_object, kernel_code) : NULL; - - // Prepareing submit callback data - rocprofiler_hsa_callback_data_t data{}; - data.submit.packet = (void*)packet; - data.submit.kernel_name = kernel_name; - data.submit.queue = obj->queue_; - data.submit.device_type = obj->agent_info_->dev_type; - data.submit.device_id = obj->agent_info_->dev_index; - callback_fun(ROCPROFILER_HSA_CB_ID_SUBMIT, &data, callback_arg); - } else { - callback_fun(ROCPROFILER_HSA_CB_ID_SUBMIT, NULL, callback_arg); } + + // Prepareing submit callback data + rocprofiler_hsa_callback_data_t data{}; + data.submit.packet = (void*)packet; + data.submit.kernel_name = kernel_name; + data.submit.queue = obj->queue_; + data.submit.device_type = obj->agent_info_->dev_type; + data.submit.device_id = obj->agent_info_->dev_index; + + callback_fun(ROCPROFILER_HSA_CB_ID_SUBMIT, &data, callback_arg); } } } diff --git a/test/tool/tool.cpp b/test/tool/tool.cpp index 0713cc6742..d0be4d064c 100644 --- a/test/tool/tool.cpp +++ b/test/tool/tool.cpp @@ -836,6 +836,7 @@ hsa_status_t hsa_unified_callback( void* arg) { printf("hsa_unified_callback(%d, %p, %p):\n", (int)id, data, arg); + if (data == NULL) abort(); switch (id) { case ROCPROFILER_HSA_CB_ID_ALLOCATE: