#[non_exhaustive]pub struct MapFile {
pub segments_list: Vec<Segment>,
}Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.segments_list: Vec<Segment>Implementations§
Source§impl MapFile
impl MapFile
pub fn filter_by_section_type(&self, section_type: &str) -> Self
pub fn get_every_section_except_section_type(&self, section_type: &str) -> Self
pub fn get_every_file_except_section_type(&self, section_type: &str) -> Self
get_every_section_except_section_type insteadpub fn find_symbol_by_name(&self, sym_name: &str) -> Option<FoundSymbolInfo<'_>>
pub fn find_symbol_by_vram_or_vrom( &self, address: u64, ) -> Option<FoundSymbolInfo<'_>>
find_symbol_by_vram or find_symbol_by_vrom instead.pub fn find_symbol_by_vram( &self, address: u64, ) -> (Option<FoundSymbolInfo<'_>>, Vec<&Section>)
pub fn find_symbol_by_vrom( &self, address: u64, ) -> (Option<FoundSymbolInfo<'_>>, Vec<&Section>)
pub fn find_lowest_differing_symbol( &self, other_map_file: &Self, ) -> Option<(&Symbol, &Section, Option<&Symbol>)>
pub fn mix_folders(&self) -> Self
pub fn fixup_non_matching_symbols(&self) -> Self
pub fn get_progress( &self, path_decomp_settings: Option<&PathDecompSettings<'_, '_>>, aliases: &HashMap<String, String>, ) -> (ProgressStats, HashMap<String, ProgressStats>)
Sourcepub fn compare_files_and_symbols<'a>(
&'a self,
other_map_file: &'a Self,
check_other_on_self: bool,
) -> MapsComparisonInfo<'a>
pub fn compare_files_and_symbols<'a>( &'a self, other_map_file: &'a Self, check_other_on_self: bool, ) -> MapsComparisonInfo<'a>
Useful for finding bss reorders
Sourcepub fn resolve_partially_linked_files<F>(&self, resolver: F) -> Self
pub fn resolve_partially_linked_files<F>(&self, resolver: F) -> Self
Resolve sections and paths of a mapfile built from partially linked objects.
elf files built by using partially linked files/objects (usually
referred to as plf) usually generate mapfiles that have filepaths that
point to the partially linked objects instead of the original objects
used to build those intermediary objects, making it awkward to work with
paths because all symbols will be listed as part as the same single plf.
This function resolves those sections by using a resolver callback that
transforms a path to an object/plf into the corresponding mapfile of
said partially linked object.
This callback should return None if the given path does not correspond
to a plf, the pointed mapfile does not exist, etc.
An usual convention for a file extension for partially linked objects is
the .plf extension instead of .o.
pub fn to_csv(&self, print_vram: bool, skip_without_symbols: bool) -> String
pub fn to_csv_symbols(&self) -> String
pub fn print_as_csv(&self, print_vram: bool, skip_without_symbols: bool)
pub fn print_symbols_csv(&self)
Source§impl MapFile
impl MapFile
Sourcepub fn new_from_map_file(map_path: &Path) -> Self
pub fn new_from_map_file(map_path: &Path) -> Self
Creates a new MapFile with the contents from the file pointed by the
map_path argument.
The format of the map will be guessed based on its contents.
Currently supported map formats:
- GNU ld
- clang ld.lld
- Metrowerks ld
Sourcepub fn new_from_map_str(map_contents: &str) -> Self
pub fn new_from_map_str(map_contents: &str) -> Self
Creates a new MapFile by parsing the contents of the map.
The format of the map will be guessed based on its contents.
Currently supported map formats:
- GNU ld
- clang ld.lld
- Metrowerks ld
Sourcepub fn new_from_gnu_map_str(map_contents: &str) -> Self
pub fn new_from_gnu_map_str(map_contents: &str) -> Self
Parses the contents of a GNU ld map.
The map_contents argument must contain the contents of a GNU ld mapfile.
Sourcepub fn new_from_lld_map_str(map_contents: &str) -> Self
pub fn new_from_lld_map_str(map_contents: &str) -> Self
Parses the contents of a clang ld.lld map.
The map_contents argument must contain the contents of a clang ld.lld mapfile.
Sourcepub fn new_from_mw_map_str(map_contents: &str) -> Self
pub fn new_from_mw_map_str(map_contents: &str) -> Self
Parses the contents of a Metrowerks ld (mwld) map.
The map_contents argument must contain the contents of a Metrowerks ld mapfile.
pub fn new() -> Self
new_from_map_file or new_from_map_str instead.Sourcepub fn read_map_file(&mut self, map_path: &Path)
👎Deprecated since 2.8.0: Prefer MapFile::new_from_map_file instead
pub fn read_map_file(&mut self, map_path: &Path)
MapFile::new_from_map_file insteadOpens the mapfile pointed by the map_path argument and parses it.
The format of the map will be guessed based on its contents.
Currently supported map formats:
- GNU ld
- clang ld.lld
- Metrowerks ld
Sourcepub fn parse_map_contents(&mut self, map_contents: &str)
👎Deprecated since 2.8.0: Prefer MapFile::new_from_map_str instead
pub fn parse_map_contents(&mut self, map_contents: &str)
MapFile::new_from_map_str insteadParses the contents of the map.
The map_contents argument must contain the contents of a mapfile.
The format of the map will be guessed based on its contents.
Currently supported mapfile formats:
- GNU ld
- clang ld.lld
- Metrowerks ld
Source§impl MapFile
impl MapFile
Sourcepub fn parse_map_contents_gnu(&mut self, map_contents: &str)
👎Deprecated since 2.8.0: Prefer MapFile::new_from_gnu_map_str instead
pub fn parse_map_contents_gnu(&mut self, map_contents: &str)
MapFile::new_from_gnu_map_str insteadParses the contents of a GNU ld map.
The map_contents argument must contain the contents of a GNU ld mapfile.
Sourcepub fn parse_map_contents_lld(&mut self, map_contents: &str)
👎Deprecated since 2.8.0: Prefer MapFile::new_from_lld_map_str instead
pub fn parse_map_contents_lld(&mut self, map_contents: &str)
MapFile::new_from_lld_map_str insteadParses the contents of a clang ld.lld map.
The map_contents argument must contain the contents of a clang ld.lld mapfile.