Find the shared libraries loaded in the current process with a cross platform API.
Here is an example program that prints out each shared library that is loaded in the process and the addresses where each of its segments are mapped into memory.
extern crate findshlibs;
use findshlibs::{Segment, SharedLibrary, TargetSharedLibrary};
fn main() {
TargetSharedLibrary::each(|shlib| {
println!("{}", shlib.name().to_string_lossy());
for seg in shlib.segments() {
println!(" {}: segment {}",
seg.actual_virtual_memory_address(shlib),
seg.name().to_string_lossy());
}
});
}
These are the OSes that findshlibs
currently supports:
- Linux
- macOS
If a platform is not supported then a fallback implementation is used that
does nothing. To see if your platform does something at runtime the
TARGET_SUPPORTED
constant can be used.
Is your OS missing here? Send us a pull request!