Struct JitCodeLoadRecord

Source
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 duplicate of the value. Read more
1.0.0 · Source§

const 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> Freeze for JitCodeLoadRecord<'a>

§

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 T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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 T
where T: Clone,

Source§

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 T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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.