pub struct SymbolInfo {
pub address: u64,
pub kind: SymbolKind,
pub size: u64,
pub is_undefined: bool,
pub is_weak: bool,
}Expand description
What we keep about each symbol — enough to drive subsecond’s JumpTable construction (I4g-2) and no more.
Fields§
§address: u64Address relative to the binary’s base (= the value we
eventually feed into a JumpTable’s map entry on the host
side; ASLR is corrected by the receiver).
kind: SymbolKindSymbol kind: function vs data vs other. Only Text is a
hot-patch candidate.
size: u64Symbol size in bytes (0 if unknown / undefined).
is_undefined: boolTrue for extern "C" declarations the binary refers to but
doesn’t define. JumpTable diffing must skip these.
is_weak: boolWeak linkage. Hot-patching weak symbols is unreliable (linker chooses winners non-deterministically); we tag them so callers can decide.
Trait Implementations§
Source§impl Clone for SymbolInfo
impl Clone for SymbolInfo
Source§fn clone(&self) -> SymbolInfo
fn clone(&self) -> SymbolInfo
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SymbolInfo
impl Debug for SymbolInfo
impl Eq for SymbolInfo
Source§impl PartialEq for SymbolInfo
impl PartialEq for SymbolInfo
Source§fn eq(&self, other: &SymbolInfo) -> bool
fn eq(&self, other: &SymbolInfo) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for SymbolInfo
Auto Trait Implementations§
impl Freeze for SymbolInfo
impl RefUnwindSafe for SymbolInfo
impl Send for SymbolInfo
impl Sync for SymbolInfo
impl Unpin for SymbolInfo
impl UnsafeUnpin for SymbolInfo
impl UnwindSafe for SymbolInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.