Type Alias ittapi_sys::iJIT_Method_Load_V3
source · pub type iJIT_Method_Load_V3 = _iJIT_Method_Load_V3;
Expand description
@brief Description of a JIT-compiled method @details The iJIT_Method_Load_V3 structure is the same as iJIT_Method_Load_V2 with a newly introduced ‘arch’ field that specifies architecture of the code region. When you use the iJIT_Method_Load_V3 structure to describe the JIT compiled method, use iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED_V3 as an event type to report it.
Aliased Type§
struct iJIT_Method_Load_V3 {
pub method_id: u32,
pub method_name: *mut i8,
pub method_load_address: *mut c_void,
pub method_size: u32,
pub line_number_size: u32,
pub line_number_table: *mut _LineNumberInfo,
pub class_file_name: *mut i8,
pub source_file_name: *mut i8,
pub module_name: *mut i8,
pub module_arch: u32,
}
Fields§
§method_id: u32
<\brief Unique method ID. Cannot be 0. You must either use the API function iJIT_GetNewMethodID to get a valid and unique method ID, or manage ID uniqueness and correct range by yourself.\n You must use the same method ID for all code regions of the same method, otherwise they are treated as regions of different methods.
method_name: *mut i8
<\brief The name of the method. It can be optionally prefixed with its class name and appended with its complete signature. Cannot be NULL.
method_load_address: *mut c_void
<\brief The start virtual address of the method code region. If NULL, then data provided with the event are not accepted.
method_size: u32
<\brief The code size of the method in memory. If 0, then data provided with the event are not accepted.
line_number_size: u32
<\brief The number of entries in the line number table. 0 if none.
line_number_table: *mut _LineNumberInfo
<\brief Pointer to the line numbers info array. Can be NULL if line_number_size is 0. See LineNumberInfo Structure for a description of a single entry in the line number info array.
class_file_name: *mut i8
<\brief Class name. Can be NULL.
source_file_name: *mut i8
<\brief Source file name. Can be NULL.
module_name: *mut i8
<\brief Module name. Can be NULL. The module name can be useful for distinguishing among different JIT engines. VTune Amplifier will display reported methods grouped by specific module.
module_arch: u32
<\brief Architecture of the method’s code region. By default, it is the same as the process architecture that is calling it. For example, you can use it if your 32-bit JIT engine generates 64-bit code.
If JIT engine reports both 32-bit and 64-bit types of methods then VTune Amplifier splits the methods with the same module name but with different architectures in two different modules. VTune Amplifier modifies the original name provided with a 64-bit method version by ending it with ‘(64)’