Fix for dynamic code object loading in the thread trace sample (#1386)
* Fix for dynamic code object loading in the thread trace sample * Review comments
This commit is contained in:
committed by
GitHub
parent
c215ace6c3
commit
dbb48c3e33
@@ -157,31 +157,34 @@ tool_codeobj_tracing_callback(rocprofiler_callback_tracing_record_t record,
|
|||||||
rocprofiler_user_data_t* /* user_data */,
|
rocprofiler_user_data_t* /* user_data */,
|
||||||
void* /* userdata */)
|
void* /* userdata */)
|
||||||
{
|
{
|
||||||
if(record.kind != ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT) return;
|
if(record.kind == ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT &&
|
||||||
if(record.operation != ROCPROFILER_CODE_OBJECT_LOAD) return;
|
record.operation == ROCPROFILER_CODE_OBJECT_LOAD &&
|
||||||
|
record.phase == ROCPROFILER_CALLBACK_PHASE_LOAD)
|
||||||
CHECK_NOTNULL(Results::table);
|
|
||||||
auto* data = static_cast<rocprofiler_callback_tracing_code_object_load_data_t*>(record.payload);
|
|
||||||
|
|
||||||
if(data->storage_type == ROCPROFILER_CODE_OBJECT_STORAGE_TYPE_FILE)
|
|
||||||
{
|
{
|
||||||
|
CHECK_NOTNULL(Results::table);
|
||||||
|
auto* data =
|
||||||
|
static_cast<rocprofiler_callback_tracing_code_object_load_data_t*>(record.payload);
|
||||||
|
|
||||||
|
if(data->storage_type == ROCPROFILER_CODE_OBJECT_STORAGE_TYPE_FILE)
|
||||||
|
{
|
||||||
|
Results::table->addDecoder(
|
||||||
|
data->uri, data->code_object_id, data->load_delta, data->load_size);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto* memorybase = reinterpret_cast<const void*>(data->memory_base);
|
||||||
|
CHECK_NOTNULL(memorybase);
|
||||||
|
|
||||||
|
DECODER_CALL(rocprofiler_thread_trace_decoder_codeobj_load(decoder,
|
||||||
|
data->code_object_id,
|
||||||
|
data->load_delta,
|
||||||
|
data->load_size,
|
||||||
|
memorybase,
|
||||||
|
data->memory_size));
|
||||||
|
|
||||||
Results::table->addDecoder(
|
Results::table->addDecoder(
|
||||||
data->uri, data->code_object_id, data->load_delta, data->load_size);
|
memorybase, data->memory_size, data->code_object_id, data->load_delta, data->load_size);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto* memorybase = reinterpret_cast<const void*>(data->memory_base);
|
|
||||||
CHECK_NOTNULL(memorybase);
|
|
||||||
|
|
||||||
DECODER_CALL(rocprofiler_thread_trace_decoder_codeobj_load(decoder,
|
|
||||||
data->code_object_id,
|
|
||||||
data->load_delta,
|
|
||||||
data->load_size,
|
|
||||||
memorybase,
|
|
||||||
data->memory_size));
|
|
||||||
|
|
||||||
Results::table->addDecoder(
|
|
||||||
memorybase, data->memory_size, data->code_object_id, data->load_delta, data->load_size);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
Reference in New Issue
Block a user