From 6b8cc1a5b5c62afaf624704e5f7f358a9d652ffe Mon Sep 17 00:00:00 2001 From: ghizard <50744617+ghizard@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:28:59 +0000 Subject: [PATCH] GP-4824 - PDB MSDIA - deal with NoType types --- .../ghidra/app/util/bin/format/pdb/PdbDataTypeParser.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/PdbDataTypeParser.java b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/PdbDataTypeParser.java index 6f2ffdd3c8..08afa07fbd 100644 --- a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/PdbDataTypeParser.java +++ b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/PdbDataTypeParser.java @@ -17,6 +17,8 @@ package ghidra.app.util.bin.format.pdb; import java.util.*; +import org.apache.commons.lang3.StringUtils; + import ghidra.app.services.DataTypeManagerService; import ghidra.program.database.data.DataTypeUtilities; import ghidra.program.model.data.*; @@ -190,11 +192,14 @@ class PdbDataTypeParser { // [16] if (dataTypeName.startsWith("*") || dataTypeName.startsWith("[")) { // prepend undefined since intent is some datatype - Msg.warn(this, "dataTypeName \"" + dataTypeName + + Msg.warn(this, "dataTypeName \"" + dataTypeName + "\" references a pointer or array without a declared datatype; assuming undefined"); dataTypeName = "undefined" + dataTypeName; } + // Deal with other unrecognized types + dataTypeName = StringUtils.replace(dataTypeName, "", "undefined"); + // Example type representations: // char *[2][3] pointer(array(array(char,3),2)) // char *[2][3] * pointer(array(array(pointer(char),3),2))