Closed Nemoumbra closed 1 year ago
It's not compatible yet. As for the effort needed, I don't know yet but there were some breaking changes in the APIs.
Hey there! Here's a set of changes I made which got the code compiling for 10.3: https://github.com/CB9001/ghidra-allegrex/commit/bb04f25099de634cb5d86e0524843aeee513835d
I have very little experience with the Ghidra API (and Kotlin), so can't guarantee everything is updated as it should be, but it seems to be working in my 10.3 installation.
Some of the key changes I noticed for 10.3:
getListeners()
method was removed from AbstractTargetObject
, replaced with a broadcast()
method instead. So instances of session.listeners.fire.event()
needed replacing with session.broadcast().event()
.ConstantPropagationContextEvaluator
constructor now requires a TaskMonitor
argumentsymEval.makeReference()
arguments changed. I updated the method call to reflect the new arguments seen hereevaluateReference
changedCountLeadingOnesOpBehavior
and CountLeadingZerosOpBehavior
were seemingly removedghidra.program.model.reloc.Relocation.Status
parameter. Right now I'm passing Relocation.Status.UNKNOWN
, but I don't know if this is the desired valueDefaultTargetObject.requestElements()
changed from requestElements(boolean refresh)
to requestElements(RefreshBehavior refresh)
Great work, I'll try to integrate your changes over the weekend.
For relocation status we'll probably use APPLIED
.
CountLeadingOnesOpBehavior
and CountLeadingZerosOpBehavior
were replaced by native pcode instructions.
Thanks @CB9001 I added your commit as a patch so you are contributed.
I've got the same error log as here: https://github.com/kotcrab/ghidra-allegrex/issues/19
java.lang.NoClassDefFoundError: ghidra/app/util/importer/MessageLogContinuesFactory
at ghidra.app.util.opinion.PspElfLoader.load(PspElfLoader.kt:67)
at ghidra.app.util.opinion.AbstractLibrarySupportLoader.doLoad(AbstractLibrarySupportLoader.java:809)
at ghidra.app.util.opinion.AbstractLibrarySupportLoader.loadProgram(AbstractLibrarySupportLoader.java:100)
at ghidra.app.util.opinion.AbstractProgramLoader.load(AbstractProgramLoader.java:131)
at ghidra.plugin.importer.ImporterUtilities.importSingleFile(ImporterUtilities.java:388)
at ghidra.plugin.importer.ImporterDialog.lambda$okCallback$7(ImporterDialog.java:347)
at ghidra.util.task.TaskBuilder$TaskBuilderTask.run(TaskBuilder.java:306)
at ghidra.util.task.Task.monitoredRun(Task.java:134)
at ghidra.util.task.TaskRunner.lambda$startTaskThread$0(TaskRunner.java:106)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.ClassNotFoundException: ghidra.app.util.importer.MessageLogContinuesFactory
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 12 more
---------------------------------------------------
Build Date: 2023-May-12 1514 CEST
Ghidra Version: 10.3
Java Home: /usr/lib/jvm/java-17-openjdk
JVM Version: N/A 17.0.7
OS: Linux 5.15.114-2-MANJARO amd64
This may be indicative of the fact that bumping the version up for Ghidra_10.3.1 was a mistake. Can you please investigate?
You are most likely using wrong plugin version, update to a release compatible with your Ghidra version: https://github.com/kotcrab/ghidra-allegrex/releases if that doesn't help please create new issue with reproduction steps.
False alert, I mistakenly thought that "ghidra-10.3-1" meant 10.3.1 and downloaded the wrong plugin version. By the way, can I contact you in Discord to discuss the beta feature of PPSSPP remote debugging?
You most likely downloaded v15 looking at the stack trace.
No, sorry, I try to keep DMs for friends only for various reasons. We can either talk in some public channel if it's suitable or I've enabled discussions here.
Is the plugin compatible with the newest Ghidra release? If not, will this be hard to make a new version like how it happened last time?