From 842890f9259994c3a120177bf0dba3372ecc36ee Mon Sep 17 00:00:00 2001 From: Ryan Kurtz Date: Thu, 29 Dec 2022 07:39:03 -0500 Subject: [PATCH] GP-714: Adding PeLoader option to show/hide debug line numbers --- .../util/opinion/AbstractPeDebugLoader.java | 68 ++++++++++++++++--- .../ghidra/app/util/opinion/DbgLoader.java | 2 +- .../ghidra/app/util/opinion/PeLoader.java | 7 +- .../Common/support/analyzeHeadlessREADME.html | 3 +- 4 files changed, 67 insertions(+), 13 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/AbstractPeDebugLoader.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/AbstractPeDebugLoader.java index 54475d9f04..9d7a5b1467 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/AbstractPeDebugLoader.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/AbstractPeDebugLoader.java @@ -17,12 +17,15 @@ package ghidra.app.util.opinion; import java.util.*; +import ghidra.app.util.Option; +import ghidra.app.util.bin.ByteProvider; import ghidra.app.util.bin.format.pdb.PdbInfoCodeView; import ghidra.app.util.bin.format.pdb.PdbInfoDotNet; import ghidra.app.util.bin.format.pe.*; import ghidra.app.util.bin.format.pe.debug.*; import ghidra.app.util.demangler.DemangledObject; import ghidra.app.util.demangler.DemanglerUtil; +import ghidra.framework.model.DomainObject; import ghidra.framework.options.Options; import ghidra.program.model.address.Address; import ghidra.program.model.data.DWordDataType; @@ -36,11 +39,54 @@ import ghidra.util.exception.InvalidInputException; import ghidra.util.task.TaskMonitor; abstract class AbstractPeDebugLoader extends AbstractOrdinalSupportLoader { + + /** Loader option to display line numbers */ + public static final String SHOW_LINE_NUMBERS_OPTION_NAME = "Show Debug Line Number Comments"; + static final boolean SHOW_LINE_NUMBERS_OPTION_DEFAULT = false; + private HashMap plateCommentMap = new HashMap<>(); private HashMap preCommentMap = new HashMap<>(); private HashMap postCommentMap = new HashMap<>(); private HashMap eolCommentMap = new HashMap<>(); + @Override + public List