diff --git a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/guest/DBTraceGuestPlatformMappedMemory.java b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/guest/DBTraceGuestPlatformMappedMemory.java index 713c95615b..ea70425ed2 100644 --- a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/guest/DBTraceGuestPlatformMappedMemory.java +++ b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/guest/DBTraceGuestPlatformMappedMemory.java @@ -34,7 +34,6 @@ import ghidra.trace.database.memory.DBTraceMemoryManager; import ghidra.trace.database.memory.DBTraceMemorySpace; import ghidra.util.MathUtilities; import ghidra.util.exception.CancelledException; -import ghidra.util.exception.NotFoundException; import ghidra.util.task.TaskMonitor; /** @@ -305,31 +304,31 @@ public class DBTraceGuestPlatformMappedMemory implements Memory { @Override public void moveBlock(MemoryBlock block, Address newStartAddr, TaskMonitor monitor) throws LockException, MemoryBlockException, MemoryConflictException, - AddressOverflowException, NotFoundException { + AddressOverflowException { throw new UnsupportedOperationException(); } @Override public void split(MemoryBlock block, Address addr) - throws MemoryBlockException, LockException, NotFoundException { + throws MemoryBlockException, LockException { throw new UnsupportedOperationException(); } @Override public MemoryBlock join(MemoryBlock blockOne, MemoryBlock blockTwo) - throws LockException, MemoryBlockException, NotFoundException { + throws LockException, MemoryBlockException { throw new UnsupportedOperationException(); } @Override public MemoryBlock convertToInitialized(MemoryBlock uninitializedBlock, byte initialValue) - throws LockException, MemoryBlockException, NotFoundException { + throws LockException, MemoryBlockException { throw new UnsupportedOperationException(); } @Override public MemoryBlock convertToUninitialized(MemoryBlock itializedBlock) - throws MemoryBlockException, NotFoundException, LockException { + throws MemoryBlockException, LockException { throw new UnsupportedOperationException(); } diff --git a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/AbstractDBTraceProgramViewMemory.java b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/AbstractDBTraceProgramViewMemory.java index 762fc1e884..cb25bf57d3 100644 --- a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/AbstractDBTraceProgramViewMemory.java +++ b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/AbstractDBTraceProgramViewMemory.java @@ -33,7 +33,6 @@ import ghidra.trace.util.MemoryAdapter; import ghidra.util.LockHold; import ghidra.util.MathUtilities; import ghidra.util.exception.CancelledException; -import ghidra.util.exception.NotFoundException; import ghidra.util.task.TaskMonitor; public abstract class AbstractDBTraceProgramViewMemory @@ -206,31 +205,31 @@ public abstract class AbstractDBTraceProgramViewMemory @Override public void moveBlock(MemoryBlock block, Address newStartAddr, TaskMonitor monitor) throws LockException, MemoryBlockException, MemoryConflictException, - AddressOverflowException, NotFoundException { + AddressOverflowException { throw new UnsupportedOperationException(); } @Override public void split(MemoryBlock block, Address addr) - throws MemoryBlockException, LockException, NotFoundException { + throws MemoryBlockException, LockException { throw new UnsupportedOperationException(); } @Override public MemoryBlock join(MemoryBlock blockOne, MemoryBlock blockTwo) - throws LockException, MemoryBlockException, NotFoundException { + throws LockException, MemoryBlockException { throw new UnsupportedOperationException(); } @Override public MemoryBlock convertToInitialized(MemoryBlock uninitializedBlock, byte initialValue) - throws LockException, MemoryBlockException, NotFoundException { + throws LockException, MemoryBlockException { throw new UnsupportedOperationException(); } @Override public MemoryBlock convertToUninitialized(MemoryBlock itializedBlock) - throws MemoryBlockException, NotFoundException, LockException { + throws MemoryBlockException, LockException { throw new UnsupportedOperationException(); } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/memory/MoveBlockTask.java b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/memory/MoveBlockTask.java index fc6837096e..0a488d5cd4 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/memory/MoveBlockTask.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/memory/MoveBlockTask.java @@ -20,7 +20,6 @@ import ghidra.program.model.listing.Program; import ghidra.program.model.mem.*; import ghidra.program.util.ProgramTask; import ghidra.util.Msg; -import ghidra.util.exception.NotFoundException; import ghidra.util.exception.RollbackException; import ghidra.util.task.TaskMonitor; @@ -80,10 +79,6 @@ public class MoveBlockTask extends ProgramTask { statusMessage = "Insufficient memory to complete operation"; cause = e; } - catch (NotFoundException e) { - statusMessage = "Memory block not found"; - cause = e; - } catch (MemoryConflictException | MemoryBlockException | IllegalArgumentException e) { statusMessage = e.getMessage(); cause = e; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/GolangSymbolAnalyzer.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/GolangSymbolAnalyzer.java index 2d31c9333e..2ccf428c5c 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/GolangSymbolAnalyzer.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/GolangSymbolAnalyzer.java @@ -693,7 +693,7 @@ public class GolangSymbolAnalyzer extends AbstractAnalyzer { memBlk = memory.getBlock(afterFlag); memBlk.setName(memBlk.getName().replaceFirst("(\\.split)+$", ".part2")); } - catch (MemoryBlockException | LockException | NotFoundException e) { + catch (MemoryBlockException | LockException e) { Msg.error(this, "Failed to fixup runtime.writeBarrier flag", e); } } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/memory/MemoryMapManager.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/memory/MemoryMapManager.java index 61f548bb48..42b7a2d70f 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/memory/MemoryMapManager.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/memory/MemoryMapManager.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -27,7 +27,8 @@ import ghidra.program.model.address.*; import ghidra.program.model.listing.*; import ghidra.program.model.mem.*; import ghidra.util.Msg; -import ghidra.util.exception.*; +import ghidra.util.exception.DuplicateNameException; +import ghidra.util.exception.RollbackException; /** * Helper class to make changes to memory blocks. @@ -270,10 +271,6 @@ class MemoryMapManager { msg = e.getMessage(); return false; } - catch (NotFoundException e) { - msg = e.getMessage(); - return false; - } catch (LockException e) { msg = e.getMessage(); return false; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/debug/GenerateOldLanguagePlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/debug/GenerateOldLanguagePlugin.java index b0c600bbf2..bc68a1f221 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/debug/GenerateOldLanguagePlugin.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/debug/GenerateOldLanguagePlugin.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -43,6 +43,7 @@ import ghidra.framework.Application; import ghidra.framework.main.ApplicationLevelPlugin; import ghidra.framework.plugintool.*; import ghidra.framework.plugintool.util.PluginStatus; +import ghidra.program.database.ProgramDB; import ghidra.program.model.address.AddressSpace; import ghidra.program.model.lang.*; import ghidra.program.model.listing.IncompatibleLanguageException; @@ -50,6 +51,7 @@ import ghidra.program.util.*; import ghidra.util.Msg; import ghidra.util.exception.AssertException; import ghidra.util.filechooser.ExtensionFileFilter; +import ghidra.util.task.TaskMonitor; import ghidra.util.xml.GenericXMLOutputter; //@formatter:off @@ -395,8 +397,7 @@ public class GenerateOldLanguagePlugin extends Plugin implements ApplicationLeve Register oldCtx = oldLang.getContextBaseRegister(); Register newCtx = newLang.getContextBaseRegister(); boolean contextWarning = false; - if (oldCtx != Register.NO_CONTEXT && - defaultTrans.isValueTranslationRequired(oldCtx)) { + if (oldCtx != Register.NO_CONTEXT && defaultTrans.isValueTranslationRequired(oldCtx)) { contextWarning = true; } else if (oldCtx == Register.NO_CONTEXT && newCtx != Register.NO_CONTEXT) { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/AbstractProgramLoader.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/AbstractProgramLoader.java index 6417e554e9..0fc5bcae16 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/AbstractProgramLoader.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/AbstractProgramLoader.java @@ -325,9 +325,8 @@ public abstract class AbstractProgramLoader implements Loader { prog.setExecutableFormat(executableFormatName); } FSRL fsrl = provider.getFSRL(); - String md5 = (fsrl != null && fsrl.getMD5() != null) - ? fsrl.getMD5() - : computeBinaryMD5(provider); + String md5 = + (fsrl != null && fsrl.getMD5() != null) ? fsrl.getMD5() : computeBinaryMD5(provider); if (fsrl != null) { if (fsrl.getMD5() == null) { fsrl = fsrl.withMD5(md5); @@ -470,6 +469,19 @@ public abstract class AbstractProgramLoader implements Loader { return DefaultLanguageService.getLanguageService(); } + private AddressSetView getProcessorDefinedMemoryBlockAddresses(Program program) { + AddressSet blockAddrSet = new AddressSet(); + Memory memory = program.getMemory(); + Language language = program.getLanguage(); + for (MemoryBlockDefinition defaultMemoryBlockDef : language.getDefaultMemoryBlocks()) { + MemoryBlock block = memory.getBlock(defaultMemoryBlockDef.getBlockName()); + if (block != null) { + blockAddrSet.add(block.getAddressRange()); + } + } + return blockAddrSet; + } + private void applyProcessorLabels(List