pub struct VariableRegistry;Expand description
Variable Registry - manages variable address to name mappings
Implementations§
Source§impl VariableRegistry
impl VariableRegistry
Sourcepub fn register_variable(
address: usize,
var_name: String,
type_name: String,
size: usize,
) -> MemScopeResult<()>
pub fn register_variable( address: usize, var_name: String, type_name: String, size: usize, ) -> MemScopeResult<()>
Register a variable with its address and information.
§Thread Safety
This function uses a try-lock on the global registry. If the lock is unavailable (high contention), registration is silently skipped. In debug builds, a warning is printed to stderr in this case.
§Return Value
Returns Ok(()) on success. Note: due to lock-free design,
registration failures are silently ignored to avoid blocking.
Sourcepub fn get_variable_info(address: usize) -> Option<VariableInfo>
pub fn get_variable_info(address: usize) -> Option<VariableInfo>
Get variable information by address
Sourcepub fn mark_variable_destroyed(
address: usize,
destruction_time: u64,
) -> MemScopeResult<()>
pub fn mark_variable_destroyed( address: usize, destruction_time: u64, ) -> MemScopeResult<()>
Mark a variable as destroyed with destruction timestamp
Sourcepub fn get_all_variables() -> HashMap<usize, VariableInfo>
pub fn get_all_variables() -> HashMap<usize, VariableInfo>
Get all variable mappings
Sourcepub fn enhance_allocations_with_registry(
allocations: &[AllocationInfo],
) -> Vec<Value>
pub fn enhance_allocations_with_registry( allocations: &[AllocationInfo], ) -> Vec<Value>
Enhance tracker allocations with variable names from registry (optimized with parallel processing)
Sourcepub fn infer_allocation_info_cached(alloc: &AllocationInfo) -> (String, String)
pub fn infer_allocation_info_cached(alloc: &AllocationInfo) -> (String, String)
Smart inference with caching for better performance
Sourcepub fn infer_allocation_info(alloc: &AllocationInfo) -> (String, String)
pub fn infer_allocation_info(alloc: &AllocationInfo) -> (String, String)
Smart inference for system allocations based on size patterns and common allocations
Sourcepub fn generate_comprehensive_export(
tracker: &MemoryTracker,
) -> MemScopeResult<Value>
pub fn generate_comprehensive_export( tracker: &MemoryTracker, ) -> MemScopeResult<Value>
Generate comprehensive export data with clear separation of system vs user allocations
Sourcepub fn clear_registry() -> MemScopeResult<()>
pub fn clear_registry() -> MemScopeResult<()>
Clear all variable registrations
Auto Trait Implementations§
impl Freeze for VariableRegistry
impl RefUnwindSafe for VariableRegistry
impl Send for VariableRegistry
impl Sync for VariableRegistry
impl Unpin for VariableRegistry
impl UnsafeUnpin for VariableRegistry
impl UnwindSafe for VariableRegistry
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more