From f7af296734086dd07e0c9b32bc103a69c8b62d3d Mon Sep 17 00:00:00 2001
From: Ryan Kurtz GhidraDev provides support for developing and debugging Ghidra scripts and modules in Eclipse.
The information provided in this document is effective as of GhidraDev 2.1.4 and is subject to
+ The information provided in this document is effective as of GhidraDev 2.1.5 and is subject to
change with future releases.GhidraDev README
@@ -53,6 +53,8 @@ change with future releases.
2.1.5: Eclipse Python breakpoints now work when Eclipse installs PyDev in .p2 +bundle pool directory.
2.1.4: Fixed exception that occurred when performing a "Link Ghidra" on projects that use a Gradle classpath container.
2.1.3: Fixed a bug that prevented Ghidra projects from recognizing extensions diff --git a/GhidraBuild/EclipsePlugins/GhidraDev/GhidraDevPlugin/META-INF/MANIFEST.MF b/GhidraBuild/EclipsePlugins/GhidraDev/GhidraDevPlugin/META-INF/MANIFEST.MF index 3500462360..286135d06b 100644 --- a/GhidraBuild/EclipsePlugins/GhidraDev/GhidraDevPlugin/META-INF/MANIFEST.MF +++ b/GhidraBuild/EclipsePlugins/GhidraDev/GhidraDevPlugin/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: GhidraDev Bundle-SymbolicName: ghidra.ghidradev;singleton:=true -Bundle-Version: 2.1.4.qualifier +Bundle-Version: 2.1.5.qualifier Bundle-Activator: ghidradev.Activator Require-Bundle: org.eclipse.ant.core;bundle-version="3.5.200", org.eclipse.buildship.core;bundle-version="3.0.0", diff --git a/GhidraBuild/EclipsePlugins/GhidraDev/GhidraDevPlugin/src/main/java/ghidradev/ghidraprojectcreator/utils/PyDevUtils.java b/GhidraBuild/EclipsePlugins/GhidraDev/GhidraDevPlugin/src/main/java/ghidradev/ghidraprojectcreator/utils/PyDevUtils.java index e693f48086..8cdb2f7e74 100644 --- a/GhidraBuild/EclipsePlugins/GhidraDev/GhidraDevPlugin/src/main/java/ghidradev/ghidraprojectcreator/utils/PyDevUtils.java +++ b/GhidraBuild/EclipsePlugins/GhidraDev/GhidraDevPlugin/src/main/java/ghidradev/ghidraprojectcreator/utils/PyDevUtils.java @@ -16,25 +16,17 @@ package ghidradev.ghidraprojectcreator.utils; import java.io.File; -import java.io.IOException; import java.net.URI; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.ArrayList; import java.util.List; -import java.util.Optional; import java.util.stream.Stream; import javax.naming.OperationNotSupportedException; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.*; import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaProject; import org.osgi.framework.Bundle; @@ -163,14 +155,19 @@ public class PyDevUtils { * @throws CoreException if there was a problem searching for the PyDev source directory. */ public static File getPyDevSrcDir() throws CoreException { - Bundle[] bundles = FrameworkUtil.getBundle(PyDevUtilsInternal.class).getBundleContext().getBundles(); + Bundle[] bundles = + FrameworkUtil.getBundle(PyDevUtilsInternal.class).getBundleContext().getBundles(); - Bundle pydevCoreBundle = Stream.of(bundles).filter(bundle -> bundle.getSymbolicName().contains("org.python.pydev.core")).findFirst().orElse(null); + Bundle pydevCoreBundle = Stream.of(bundles) + .filter(bundle -> bundle.getSymbolicName().contains("org.python.pydev.core")) + .findFirst() + .orElse(null); - if(pydevCoreBundle != null) { + if (pydevCoreBundle != null) { try { URL pydevDirUrl = FileLocator.toFileURL(pydevCoreBundle.getEntry("/")); - URI pydevDirUri = new URI(pydevDirUrl.getProtocol(), pydevDirUrl.getPath(), null).normalize(); + URI pydevDirUri = + new URI(pydevDirUrl.getProtocol(), pydevDirUrl.getPath(), null).normalize(); Path pysrcDir = Paths.get(pydevDirUri).resolve("pysrc"); if (Files.exists(pysrcDir)) { return pysrcDir.toFile();