diff --git a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeType.java b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeType.java index a34685d2c9..45f21c98a3 100644 --- a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeType.java +++ b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeType.java @@ -722,6 +722,7 @@ public class CppCompositeType { private List getDirectBaseClassMembers(TaskMonitor monitor) throws CancelledException { List myDirectClassPdbMembers = new ArrayList<>(); + TreeMap orderedBaseMembers = new TreeMap<>(); for (LayoutBaseClass base : getLayoutBaseClasses()) { monitor.checkCancelled(); CppCompositeType baseComposite = base.getBaseClassType(); @@ -733,10 +734,13 @@ public class CppCompositeType { getBaseCategoryName("BaseClass_" + base.getBaseClassType().getName()); Member baseMember = new Member("", baseDataType, false, null, offset, cn.toString()); - addPdbMember(myDirectClassPdbMembers, baseMember); + orderedBaseMembers.put(offset, baseMember); } } } + for (Member baseMember : orderedBaseMembers.values()) { + addPdbMember(myDirectClassPdbMembers, baseMember); + } return myDirectClassPdbMembers; }