diff --git a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/ApplyStackVariables.java b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/ApplyStackVariables.java index 96a4ba7860..4ebb686e18 100644 --- a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/ApplyStackVariables.java +++ b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/ApplyStackVariables.java @@ -65,6 +65,7 @@ class ApplyStackVariables { DataType dt = getDataType(member, log); if (dt == null) { + xmlParser.next();//stack variable number end tag continue; } diff --git a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/DefaultPdbMember.java b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/DefaultPdbMember.java index f8061d4161..d05df119f1 100644 --- a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/DefaultPdbMember.java +++ b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/DefaultPdbMember.java @@ -81,6 +81,7 @@ public class DefaultPdbMember extends PdbMember { return null; } if (kind == PdbKind.MEMBER) { + // Strip bitfield data if present (see parseBitField method) int bitFieldColonIndex = name.indexOf(':'); if (bitFieldColonIndex >= 0) { return name.substring(0, bitFieldColonIndex); @@ -118,7 +119,10 @@ public class DefaultPdbMember extends PdbMember { } private void parseBitField(String name) { - int bitFieldColonIndex = name != null ? name.indexOf(':') : -1; + if (name == null || kind != PdbKind.MEMBER) { + return; + } + int bitFieldColonIndex = name.indexOf(':'); if (bitFieldColonIndex >= 0) { isBitField = true;