[][src]Struct ittapi_rs::_iJIT_Method_Update

#[repr(C)]
pub struct _iJIT_Method_Update {
    pub load_address: *mut c_void,
    pub size: c_uint,
    pub type_: iJIT_SegmentType,
    pub data_format: *const c_char,
}

@brief Description of a dynamic update of the content within JIT-compiled method @details The JIT engine may generate the methods that are updated at runtime partially by mixed (data + executable code) content. When you use the iJIT_Method_Update structure to describe the update of the content within a JIT-compiled method, use iJVM_EVENT_TYPE_METHOD_UPDATE_V2 as an event type to report it.

On the first Update event, VTune Amplifier copies the original code range reported by the iJVM_EVENT_TYPE_METHOD_LOAD event, then modifies it with the supplied bytes and adds the modified range to the original method. For next update events, VTune Amplifier does the same but it uses the latest modified version of a code region for update. Eventually, VTune Amplifier GUI displays multiple code ranges for the method reported by the iJVM_EVENT_TYPE_METHOD_LOAD event. Notes:

  • Multiple update events with different types for the same trace are allowed but they must be reported for the same code ranges. Example, @code [-- data---] Allowed [-- code --] Allowed [code] Ignored [-- data---] Allowed [-- code --] Allowed [------------ trace ---------] @endcode
  • The types of previously reported events can be changed but they must be reported for the same code ranges. Example, @code [-- data---] Allowed [-- code --] Allowed [-- data---] Allowed [-- code --] Allowed [------------ trace ---------] @endcode

Fields

load_address: *mut c_void

<\brief Start address of the update within a method

size: c_uint

<\brief The update size

type_: iJIT_SegmentType

<\brief Type of the update

data_format: *const c_char

<\brief C string that contains a format string that follows the same specifications as format in printf. The format string is used for iJIT_CT_CODE only and cannot be NULL. Format can be changed on the fly.

Trait Implementations

impl Clone for _iJIT_Method_Update[src]

impl Copy for _iJIT_Method_Update[src]

impl Debug for _iJIT_Method_Update[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.