#[repr(C)]
pub struct _iJIT_Method_Load_V3 { pub method_id: c_uint, pub method_name: *mut c_char, pub method_load_address: *mut c_void, pub method_size: c_uint, pub line_number_size: c_uint, pub line_number_table: pLineNumberInfo, pub class_file_name: *mut c_char, pub source_file_name: *mut c_char, pub module_name: *mut c_char, pub module_arch: iJIT_CodeArchitecture, }
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.

Fields

method_id: c_uint

<\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 c_char

<\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: c_uint

<\brief The code size of the method in memory. If 0, then data provided with the event are not accepted.

line_number_size: c_uint

<\brief The number of entries in the line number table. 0 if none.

line_number_table: pLineNumberInfo

<\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 c_char

<\brief Class name. Can be NULL.

source_file_name: *mut c_char

<\brief Source file name. Can be NULL.

module_name: *mut c_char

<\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: iJIT_CodeArchitecture

<\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)’

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.