diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/omf/OmfFileHeader.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/omf/OmfFileHeader.java index e12532d272..aca6600ad0 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/omf/OmfFileHeader.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/omf/OmfFileHeader.java @@ -37,7 +37,8 @@ public class OmfFileHeader extends OmfRecord { private List segments = new ArrayList<>(); private List groups = new ArrayList<>(); private List externsymbols = new ArrayList<>(); - private List symbols = new ArrayList<>(); + private List publicSymbols = new ArrayList<>(); + private List localSymbols = new ArrayList<>(); private List fixup = new ArrayList<>(); private List extraSeg = null; // Holds implied segments that don't have official header record // private OmfModuleEnd endModule = null; @@ -128,10 +129,17 @@ public class OmfFileHeader extends OmfRecord { } /** - * @return the list of symbols exported by this file + * @return the list of public symbols exported by this file */ public List getPublicSymbols() { - return symbols; + return publicSymbols; + } + + /** + * @return the list of local symbols in this file + */ + public List getLocalSymbols() { + return localSymbols; } /** @@ -371,7 +379,12 @@ public class OmfFileHeader extends OmfRecord { header.externsymbols.add(external); } else if (record instanceof OmfSymbolRecord symbol) { - header.symbols.add(symbol); + if (symbol.isStatic()) { + header.localSymbols.add(symbol); + } + else { + header.publicSymbols.add(symbol); + } } else if (record instanceof OmfNamesRecord names) { names.appendNames(header.nameList); // Keep names, otherwise don't save record