pub struct IsrCache { /* private fields */ }Expand description
A cache for OS kernel profiles.
Manages the download and extraction of necessary debug symbols.
Implementations§
Source§impl IsrCache
impl IsrCache
Sourcepub fn new(output_directory: impl Into<PathBuf>) -> Result<Self, Error>
pub fn new(output_directory: impl Into<PathBuf>) -> Result<Self, Error>
Creates a new IsrCache instance, initializing it with the provided
directory. If the directory doesn’t exist, it attempts to create it.
Sourcepub fn with_progress(
self,
f: impl Fn(ProgressEvent<'_>) + Send + Sync + 'static,
) -> Self
pub fn with_progress( self, f: impl Fn(ProgressEvent<'_>) + Send + Sync + 'static, ) -> Self
Sets a progress callback for download and extraction operations.
Sourcepub fn with_offline(self, offline: bool) -> Self
pub fn with_offline(self, offline: bool) -> Self
Enables or disables offline mode.
In offline mode the cache only uses already-downloaded artifacts and never reaches out to the network.
Sourcepub fn with_ubuntu_downloader(
self,
ubuntu_downloader: UbuntuSymbolDownloader,
) -> Self
pub fn with_ubuntu_downloader( self, ubuntu_downloader: UbuntuSymbolDownloader, ) -> Self
Overrides the default UbuntuSymbolDownloader.
Sourcepub fn ubuntu_downloader(&self) -> &UbuntuSymbolDownloader
pub fn ubuntu_downloader(&self) -> &UbuntuSymbolDownloader
Returns the UbuntuSymbolDownloader, lazily initializing it.
Sourcepub fn with_symbol_downloader(self, symbol_downloader: SymbolDownloader) -> Self
pub fn with_symbol_downloader(self, symbol_downloader: SymbolDownloader) -> Self
Overrides the default SymbolDownloader.
Sourcepub fn symbol_downloader(&self) -> &SymbolDownloader
pub fn symbol_downloader(&self) -> &SymbolDownloader
Returns the SymbolDownloader, lazily initializing it.
Creates or retrieves a cached profile based on a Linux kernel banner.
Parses the banner to determine the kernel version and downloads the necessary debug symbols and system map if not present in the cache. Generates and stores the profile, returning its path.
Sourcepub fn download_from_ubuntu_version_signature(
&self,
version_signature: UbuntuVersionSignature,
) -> Result<UbuntuSymbolPaths, Error>
pub fn download_from_ubuntu_version_signature( &self, version_signature: UbuntuVersionSignature, ) -> Result<UbuntuSymbolPaths, Error>
Downloads and extracts the kernel image, debug symbols, and
System.map for the given Ubuntu version signature.
Returns an UbuntuSymbolPaths with the output directory and the
per-artifact paths.
Sourcepub fn entry_from_codeview(&self, codeview: CodeView) -> Result<Entry, Error>
pub fn entry_from_codeview(&self, codeview: CodeView) -> Result<Entry, Error>
Creates or retrieves a cached profile from a CodeView debug
information structure.
If a profile for the given CodeView information already exists in
the cache, its path is returned. Otherwise, the necessary PDB file is
downloaded, the profile is generated and stored in the cache, and its
path is returned.
Sourcepub fn entry_from_pe(&self, path: impl AsRef<Path>) -> Result<Entry, Error>
pub fn entry_from_pe(&self, path: impl AsRef<Path>) -> Result<Entry, Error>
Creates or retrieves a cached profile from a PE file.
Extracts the CodeView debug information from the PE file and
delegates to entry_from_codeview.
Sourcepub fn download_from_codeview(
&self,
codeview: CodeView,
) -> Result<PathBuf, Error>
pub fn download_from_codeview( &self, codeview: CodeView, ) -> Result<PathBuf, Error>
Downloads or retrieves a cached PDB from its CodeView record.
Sourcepub fn download_from_image_signature(
&self,
image_signature: ImageSignature,
) -> Result<PathBuf, Error>
pub fn download_from_image_signature( &self, image_signature: ImageSignature, ) -> Result<PathBuf, Error>
Downloads or retrieves a cached PE binary from its ImageSignature.
PE binaries are cached at:
<cache>/windows/<name>/<timestamp><size_of_image>/<name>
Returns the path to the cached binary.
Auto Trait Implementations§
impl !Freeze for IsrCache
impl !RefUnwindSafe for IsrCache
impl Send for IsrCache
impl !Sync for IsrCache
impl Unpin for IsrCache
impl UnsafeUnpin for IsrCache
impl !UnwindSafe for IsrCache
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.