pub struct JitCodeLoadRecord<'a> {
    pub pid: u32,
    pub tid: u32,
    pub vma: u64,
    pub code_addr: u64,
    pub code_index: u64,
    pub function_name: RawData<'a>,
    pub code_bytes: RawData<'a>,
}
Expand description

A parsed JIT_CODE_LOAD record, for a single jitted function.

This carries the function name and the code bytes.

Fields§

§pid: u32

The process ID of the runtime generating the jitted code.

§tid: u32

The thread ID of the runtime thread generating the jitted code.

§vma: u64

The virtual address where code_bytes starts in the memory of the process.

§code_addr: u64

The code start address for the jitted code. It is unclear in what cases this would differ from vma.

§code_index: u64

A unique identifier for this piece of jitted code, to allow future JitCodeMoveRecords to refer back to this record.

§function_name: RawData<'a>

The function name, in ASCII.

§code_bytes: RawData<'a>

The jitted code, as raw bytes. These bytes can be decoded into assembly instructions of the CPU architecture given in the file header.

Implementations§

source§

impl<'a> JitCodeLoadRecord<'a>

source

pub const NAME_OFFSET_FROM_RECORD_START: usize = 56usize

The offset, in bytes, between the start of the record header and the start of the function name.

source

pub fn parse(endian: Endianness, data: RawData<'a>) -> Result<Self, Error>

source

pub fn parse_impl<O: ByteOrder>(data: RawData<'a>) -> Result<Self, Error>

source

pub fn code_bytes_offset_from_record_header_start(&self) -> usize

The offset, in bytes, between the start of the record header and the start of the code bytes.

This can be different for each record because the code bytes are after the function name, so this offset depends on the length of the function name.

Trait Implementations§

source§

impl<'a> Clone for JitCodeLoadRecord<'a>

source§

fn clone(&self) -> JitCodeLoadRecord<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a> Debug for JitCodeLoadRecord<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for JitCodeLoadRecord<'a>

§

impl<'a> Send for JitCodeLoadRecord<'a>

§

impl<'a> Sync for JitCodeLoadRecord<'a>

§

impl<'a> Unpin for JitCodeLoadRecord<'a>

§

impl<'a> UnwindSafe for JitCodeLoadRecord<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.