[][src]Struct ittapi_rs::_iJIT_Method_Load_V3

#[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,
}

@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

impl Clone for _iJIT_Method_Load_V3[src]

impl Copy for _iJIT_Method_Load_V3[src]

impl Debug for _iJIT_Method_Load_V3[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.