Giter VIP home page Giter VIP logo

intellij-ghidra's Introduction

intellij-ghidra

Adds support for Ghidra extensions and scripts written in Java to IntellIJ. The following additional features have been added to the IDE:

  • Ghidra Framework facet and global library support
  • Code Assistance from the Ghidra API
  • Run Configuration integration to launch the current extension

Building

  1. Check if your Intellij IDEA version and edition matches the properties set in gradle.properties file:
platformType = IC
platformVersion = 2021.3.2

For the Intellij IDEA Community edition you need to keep IC as is, for the Ultimate edition it should become IU.

  1. Run the Gradle to build the plugin
gradle buildPlugin
  1. The resulting ZIP ready for installation is located at build/distributions/intellij-ghidra-*.zip

Usage

At the moment the only functionality available is configuring the IDE with the path to Ghidra, and a custom run configuration. This can be set up by configuring the Ghidra facet and then creating a Ghidra Launcher run configuration, as shown below.

Setup demonstration

intellij-ghidra's People

Contributors

actions-user avatar agatti avatar ekilmer avatar garyttierney avatar lukbukkit avatar matthewshao avatar mrexodia avatar xvilka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

intellij-ghidra's Issues

The plugin fails to recognise valid Ghidra installations

Describe the bug:

The plugin reports an exception at startup about missing paths, then fails to launch Ghidra.

Steps to reproduce:

  • Build Ghidra from git using gradle buildGhidra (I'm testing with revision 42ca00b35d14a08f3105756869aa8478a591fa04)
  • Unzip the archive found under build/dist to any directory
  • Run ./ghidraRun in the directory chosen early, then once Ghidra is started just close it
  • Import the Ghidra project in IntelliJ, then add the Ghidra facet using the path from earlier
  • The plugin reports an exception about an invalid path (see stack trace)

Expected behavior:

The plugin does not report any exception on valid Ghidra installations.

Additional context:

IDE: IntelliJ Ultimate 2021.3
OS: macOS 12.0.1
JDK:

openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment Temurin-11.0.13+8 (build 11.0.13+8)
OpenJDK 64-Bit Server VM Temurin-11.0.13+8 (build 11.0.13+8, mixed mode)

Stack trace when choosing the path (the failure occurs when enumerating Ghidra/Extensions, which happens to be empty:

java.lang.IllegalStateException: Installation path doesn't exist
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacetConfiguration.searchGhidraRoots(GhidraFacetConfiguration.kt:25)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacetConfiguration.loadGhidraInstallation(GhidraFacetConfiguration.kt:62)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet$updateLibrary$$inlined$runWriteAction$1.compute(actions.kt:64)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runWriteAction$15(ApplicationImpl.java:956)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:935)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:956)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet.updateLibrary(GhidraFacet.kt:128)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet$1.facetConfigurationChanged(GhidraFacet.kt:36)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:645)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:620)
	at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:417)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:390)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:372)
	at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:33)
	at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:179)
	at com.sun.proxy.$Proxy216.facetConfigurationChanged(Unknown Source)
	at com.intellij.facet.impl.FacetEventsPublisher.fireFacetConfigurationChanged(FacetEventsPublisher.kt:83)
	at com.intellij.facet.FacetManagerBase.facetConfigurationChanged(FacetManagerBase.java:76)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.facet.FacetManagerBridge.facetConfigurationChanged(FacetManagerBridge.kt:51)
	at com.intellij.facet.impl.ProjectFacetsConfigurator.commitFacets(ProjectFacetsConfigurator.java:235)
	at com.intellij.openapi.roots.ui.configuration.ModulesConfigurator.lambda$apply$3(ModulesConfigurator.java:348)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:947)
	at com.intellij.openapi.roots.ui.configuration.ModulesConfigurator.apply(ModulesConfigurator.java:316)
	at com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable.apply(ModuleStructureConfigurable.java:378)
	at com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable.apply(ProjectStructureConfigurable.java:312)
	at com.intellij.openapi.options.ex.SingleConfigurableEditor$ApplyAction.actionPerformed(SingleConfigurableEditor.java:209)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:270)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6654)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
	at java.desktop/java.awt.Component.processEvent(Component.java:6419)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5029)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2790)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891)
	at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:820)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:757)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:498)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
	at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
	at java.desktop/java.awt.Dialog.show(Dialog.java:1070)
	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:701)
	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:437)
	at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1671)
	at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1629)
	at com.intellij.ide.actions.ShowStructureSettingsAction.showDialog(ShowStructureSettingsAction.java:46)
	at com.intellij.ide.actions.ShowStructureSettingsAction.actionPerformed(ShowStructureSettingsAction.java:36)
	at com.intellij.openapi.keymap.impl.ActionProcessor.performAction(ActionProcessor.java:65)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:572)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.lambda$doPerformActionInner$10(IdeKeyEventDispatcher.java:702)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:265)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.doPerformActionInner(IdeKeyEventDispatcher.java:698)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:641)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:583)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processActionOrWaitSecondStroke(IdeKeyEventDispatcher.java:466)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:455)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:223)
	at com.intellij.ide.IdeEventQueue.dispatchKeyEvent(IdeEventQueue.java:804)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:754)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:498)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)```

Projects referencing a Ghidra facet do not open anymore on 2022.2.2

Describe the bug:

Plugin crashes during initialisation.

Steps to reproduce:

Open a project that references a Ghidra facet.

Expected behavior:

The project opens successfully.

Additional context:

This occurs on 2022.2.2, it worked fine until then.

Stack trace:

Access is allowed from write thread only

java.util.concurrent.CompletionException: com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: EventQueue.isDispatchThread()=false
Current thread: Thread[JobScheduler FJ pool 3/9,4,main] 1239449248
SystemEventQueueThread: Thread[AWT-EventQueue-0,6,main] 874203301
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1807)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: EventQueue.isDispatchThread()=false
Current thread: Thread[JobScheduler FJ pool 3/9,4,main] 1239449248
SystemEventQueueThread: Thread[AWT-EventQueue-0,6,main] 874203301
	at com.intellij.openapi.application.impl.ApplicationImpl.throwThreadAccessException(ApplicationImpl.java:1110)
	at com.intellij.openapi.application.impl.ApplicationImpl.assertIsWriteThread(ApplicationImpl.java:1116)
	at com.intellij.openapi.application.impl.ApplicationImpl.startWrite(ApplicationImpl.java:1198)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:1009)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1032)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet.updateLibrary(GhidraFacet.kt:141)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet.initFacet(GhidraFacet.kt:62)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleBridgeImpl.initFacets(ModuleBridgeImpl.kt:100)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerBridgeImpl.loadModules(ModuleManagerBridgeImpl.kt:119)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleBridgeLoaderService.loadModules(ModuleBridgeLoaderService.kt:58)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleBridgeLoaderService.<init>(ModuleBridgeLoaderService.kt:48)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:52)
	at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:890)
	at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:51)
	at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:41)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:119)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:73)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:66)
	at com.intellij.serviceContainer.ComponentManagerImpl.preloadService(ComponentManagerImpl.kt:1068)
	at com.intellij.serviceContainer.ComponentManagerImpl$preloadServices$1.invoke(ComponentManagerImpl.kt:1033)
	at com.intellij.serviceContainer.ComponentManagerImpl$preloadServices$1.run(ComponentManagerImpl.kt:55)
	at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1375)
	... 5 more

Resources in the `data` extension directory aren't available from Ghidra run configurations.

Describe the bug:

As per subject, accessing resources bundled in an extension's data/ directory is not possible from a Ghidra run configuration. Application.getModuleDataFile and similar functions in the Ghidra framework will fail as they will search for files in the compiled classes root (usually under build/classes/{kotlin,java}/main) rather than in the root of the zip file the extension is packaged as (see Application.getMyModuleRootDirectory in ghidra.framework).

Steps to reproduce:

Put some files in an extension's data/ directory and try to access them from your extension code.

Expected behavior:

The extension can access the bundled files correctly.

Additional context:

I suppose this also affects extensions that package their own Sleigh files which, coincidentally, should be put in the data/ directory as well. I was going to see how to have the IntelliJ plugin launch Ghidra with custom Sleigh files in an extension at a later stage but I stumbled on this issue earlier than I thought.

Now, I'm not sure if this is something that should be handled on the plugin's side by copying or linking the data/ directory in the appropriate place or if it is the Gradle build script's task to do that. I guess either way works for me, but one has to remember to add the copy/link operation in the Gradle script on every project as it is not part of the generated template (and I cannot really fault Ghidra's developers for that...).

Exception in plugin Ghidra(0.3.0)

java.util.NoSuchElementException: List is empty.
at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:212)
at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet$Companion.findAnyInProject(GhidraFacet.kt:122)
at com.codingmates.ghidra.intellij.ide.runConfiguration.GhidraLauncherConfiguration.onNewConfigurationCreated(GhidraLauncherConfiguration.kt:106)
at com.intellij.execution.impl.RunManagerImplKt.callNewConfigurationCreated(RunManagerImpl.kt:1368)
at com.intellij.execution.impl.RunConfigurable.createNewConfiguration(RunConfigurable.kt:899)
at com.intellij.execution.impl.RunConfigurable$MyToolbarAddAction$showAddPopup$popup$1.consume(RunConfigurable.kt:943)
at com.intellij.execution.impl.RunConfigurable$MyToolbarAddAction$showAddPopup$popup$1.consume(RunConfigurable.kt:914)
at com.intellij.execution.impl.NewRunConfigurationPopup$5.onChosen(NewRunConfigurationPopup.java:249)
at com.intellij.ui.popup.tree.TreePopupImpl.handleSelect(TreePopupImpl.java:357)
at com.intellij.ui.popup.tree.TreePopupImpl$MyMouseListener.mousePressed(TreePopupImpl.java:307)
at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:288)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6651)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
at com.intellij.ui.treeStructure.Tree.processMouseEvent(Tree.java:394)
at java.desktop/java.awt.Component.processEvent(Component.java:6419)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5029)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4544)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2790)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:820)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:757)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:498)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
at java.desktop/java.awt.Dialog.show(Dialog.java:1070)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:701)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:437)
at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1671)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1629)
at com.intellij.execution.actions.EditRunConfigurationsAction.actionPerformed(EditRunConfigurationsAction.java:30)
at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAwareWithCallbacks$4(ActionUtil.java:244)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:265)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:244)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.lambda$tryToExecuteNow$18(ActionManagerImpl.java:1658)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.lambda$tryToExecuteNow$19(ActionManagerImpl.java:1627)
at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$3(FocusManagerImpl.java:184)
at com.intellij.util.ui.EdtInvocationManager.invokeLaterIfNeeded(EdtInvocationManager.java:101)
at com.intellij.ide.IdeEventQueue.ifFocusEventsInTheQueue(IdeEventQueue.java:186)
at com.intellij.ide.IdeEventQueue.executeWhenAllFocusEventsLeftTheQueue(IdeEventQueue.java:140)
at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:175)
at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:181)
at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.doWhenFocusSettlesDown(IdeFocusManagerImpl.java:41)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.tryToExecuteNow(ActionManagerImpl.java:1626)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.lambda$tryToExecute$16(ActionManagerImpl.java:1613)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.tryToExecute(ActionManagerImpl.java:1615)
at com.intellij.execution.actions.RunConfigurationsComboBoxAction.performWhenButton(RunConfigurationsComboBoxAction.java:154)
at com.intellij.execution.actions.RunConfigurationsComboBoxAction$RunConfigurationsComboBoxButton.fireActionPerformed(RunConfigurationsComboBoxAction.java:241)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369)
at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:349)
at com.intellij.openapi.actionSystem.ex.ComboBoxAction$ComboBoxButton$1.mousePressed(ComboBoxAction.java:172)
at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:288)
at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:287)
at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:287)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6651)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
at java.desktop/java.awt.Component.processEvent(Component.java:6419)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5029)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4544)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2790)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:820)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:757)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:498)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

troubleshoot help

I'm a java newbie, the following is my build error message:

gradle buildPlugin

> Configure project :
[gradle-intellij-plugin :intellij-ghidra] Gradle IntelliJ Plugin is outdated: 1.10.0. Update `org.jetbrains.intellij` to: 1.15.0
[gradle-intellij-plugin :intellij-ghidra] Error when resolving dependency: DefaultExternalModuleDependency{group='com.jetbrains.intellij.idea', name='ideaIC', version='2023.1', configuration='default'}
org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':detachedConfiguration3'.
········
········
········
········
········
        at org.gradle.internal.resource.transfer.AccessorBackedExternalResource.lambda$withContentIfPresent$2(AccessorBackedExternalResource.java:101)
        at org.gradle.internal.resource.transfer.ProgressLoggingExternalResourceAccessor$DownloadOperation.lambda$call$0(ProgressLoggingExternalResourceAccessor.java:125)
        at org.gradle.internal.resource.transfer.AbstractExternalResourceAccessor.withContent(AbstractExternalResourceAccessor.java:39)
        ... 253 more

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':prepareSandbox'.
> Failed to query the value of task ':prepareSandbox' property 'librariesToIgnore'.
   > Failed to query the value of task ':setupDependencies' property 'idea'.
      > Could not resolve all files for configuration ':detachedConfiguration3'.
         > Could not download ideaIC-2023.1.zip (com.jetbrains.intellij.idea:ideaIC:2023.1)
            > Could not get resource 'https://cache-redirector.jetbrains.com/www.jetbrains.com/intellij-repository/releases/com/jetbrains/intellij/idea/ideaIC/2023.1/ideaIC-2023.1.zip'.
               > Premature end of Content-Length delimited message body (expected: 754,488,038; received: 198,975,577)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

seems like it can't parse gradle.properties properly.
my env:

java --version
java 11.0.19 2023-04-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.19+9-LTS-224)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.19+9-LTS-224, mixed mode)

intellij : 2023.1

gradle --version

------------------------------------------------------------
Gradle 7.4
------------------------------------------------------------

Build time:   2022-02-08 09:58:38 UTC
Revision:     f0d9291c04b90b59445041eaa75b2ee744162586

Kotlin:       1.5.31
Groovy:       3.0.9
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          11.0.19 (Oracle Corporation 11.0.19+9-LTS-224)
OS:           Windows 11 10.0 amd64

my gradle.properties :

# IntelliJ Platform Artifacts Repositories
# -> https://plugins.jetbrains.com/docs/intellij/intellij-artifacts.html

pluginGroup = com.codingmates.ghidra
pluginName = IntelliJ Ghidra
pluginVersion = 0.4.1

# See https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
# for insight into build numbers and IntelliJ Platform versions.
pluginSinceBuild = 231
pluginUntilBuild = 231.*

# IntelliJ Platform Properties -> https://github.com/JetBrains/gradle-intellij-plugin#intellij-platform-properties
platformType = IC
platformVersion = 2023.1

# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html
# Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22
platformPlugins = com.intellij.java

# Java language level used to compile sources and to generate the files for - Java 11 is required since 2020.3
javaVersion = 11

# Gradle Releases -> https://github.com/gradle/gradle/releases
gradleVersion = 7.4

I dont know what I did wrong.😢

GhidraFacet.kt:26 java.lang.Throwable: Do not use module level message bus at com.intellij.openapi.diagnostic.Logger.error(Logger.java:182)

Following exceptions happened soon after this one, most probably they are induced.

2021-11-23T12:56:05.443
java.lang.Throwable: Do not use module level message bus
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:182)
	at com.intellij.serviceContainer.ComponentManagerImpl.getMessageBus(ComponentManagerImpl.kt:199)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet.<init>(GhidraFacet.kt:26)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacetType.createFacet(GhidraFacetType.kt:26)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacetType.createFacet(GhidraFacetType.kt:11)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.facet.FacetModelBridge.createFacet(FacetManagerBridge.kt:156)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.facet.FacetModelBridge.access$createFacet(FacetManagerBridge.kt:111)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.facet.FacetModelBridge$getOrCreateFacet$$inlined$updateDiffOrStorage$1$lambda$1.invoke(FacetManagerBridge.kt:132)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.facet.FacetModelBridge$getOrCreateFacet$$inlined$updateDiffOrStorage$1$lambda$1.invoke(FacetManagerBridge.kt:111)
	at com.intellij.workspaceModel.storage.impl.external.MutableExternalEntityMappingImpl.getOrPutDataByEntity(ExternalEntityMappingImpl.kt:76)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.facet.FacetModelBridge$getOrCreateFacet$$inlined$updateDiffOrStorage$1.invoke(FacetManagerBridge.kt:252)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.facet.FacetModelBridge$getOrCreateFacet$$inlined$updateDiffOrStorage$1.invoke(FacetManagerBridge.kt:111)
	at com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl.updateProjectModelSilent(WorkspaceModelImpl.kt:94)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.facet.FacetModelBridge.getOrCreateFacet$intellij_platform_lang_impl(FacetManagerBridge.kt:261)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.facet.FacetModelBridge.<init>(FacetManagerBridge.kt:117)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.facet.FacetManagerBridge.<init>(FacetManagerBridge.kt:31)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:52)
	at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:877)
	at com.intellij.serviceContainer.MyComponentAdapter.doCreateInstance(MyComponentAdapter.kt:35)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:60)
	at com.intellij.serviceContainer.ComponentManagerImpl.createComponents(ComponentManagerImpl.kt:407)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleBridgeImpl.callCreateComponents(ModuleBridgeImpl.kt:75)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerBridgeImpl.createModuleInstance(ModuleManagerBridgeImpl.kt:304)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerBridgeImpl$loadModules$$inlined$map$lambda$1.call(ModuleManagerBridgeImpl.kt:95)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerBridgeImpl$loadModules$$inlined$map$lambda$1.call(ModuleManagerBridgeImpl.kt:46)
	at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1448)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)


2021-11-23T12:56:06.181
java.lang.IllegalStateException: Installation path doesn't exist
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacetConfiguration.searchGhidraRoots(GhidraFacetConfiguration.kt:25)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacetConfiguration.loadGhidraInstallation(GhidraFacetConfiguration.kt:62)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet$updateLibrary$$inlined$runWriteAction$1.compute(actions.kt:64)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runWriteAction$15(ApplicationImpl.java:945)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:924)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:945)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet.updateLibrary(GhidraFacet.kt:129)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet$1.facetConfigurationChanged(GhidraFacet.kt:38)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:645)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:620)
	at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:417)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:390)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:372)
	at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:33)
	at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:179)
	at com.sun.proxy.$Proxy272.facetConfigurationChanged(Unknown Source)
	at com.intellij.facet.impl.FacetEventsPublisher.fireFacetConfigurationChanged(FacetEventsPublisher.kt:83)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.facet.FacetEntityChangeListener.processChange(FacetEntityChangeListener.kt:77)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerComponentBridge$2$changed$1.invoke(ModuleManagerComponentBridge.kt:118)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerComponentBridge$2$changed$1.invoke(ModuleManagerComponentBridge.kt:74)
	at com.intellij.workspaceModel.ide.impl.UtilsKt.executeOrQueueOnDispatchThread(utils.kt:13)
	at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerComponentBridge$2.changed(ModuleManagerComponentBridge.kt:103)
	at com.intellij.workspaceModel.ide.WorkspaceModelTopics$EventsDispatcher.changed(WorkspaceModelTopics.kt:118)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:645)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:620)
	at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:417)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:390)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:372)
	at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:33)
	at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:179)
	at com.sun.proxy.$Proxy68.changed(Unknown Source)
	at com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl.onChanged(WorkspaceModelImpl.kt:125)
	at com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl.access$onChanged(WorkspaceModelImpl.kt:20)
	at com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl$updateProjectModel$2.invoke(WorkspaceModelImpl.kt:88)
	at com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl$updateProjectModel$2.invoke(WorkspaceModelImpl.kt:20)
	at com.intellij.workspaceModel.storage.impl.VersionedEntityStorageImpl.replace(VersionedEntityStorageImpl.kt:183)
	at com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl.updateProjectModel(WorkspaceModelImpl.kt:88)
	at com.intellij.workspaceModel.ide.impl.jps.serialization.JpsProjectModelSynchronizer$applyLoadedStorage$1.run(JpsProjectModelSynchronizer.kt:213)
	at com.intellij.openapi.application.WriteAction.lambda$runAndWait$2(WriteAction.java:123)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:924)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:950)
	at com.intellij.openapi.application.WriteAction.compute(WriteAction.java:104)
	at com.intellij.openapi.application.WriteAction.lambda$computeAndWait$3(WriteAction.java:153)
	at com.intellij.openapi.application.WriteThread.lambda$submit$0(WriteThread.java:28)
	at com.intellij.openapi.application.WriteThread.lambda$submit$1(WriteThread.java:45)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
	at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLaterOnWriteThread$10(ApplicationImpl.java:783)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:133)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
	at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:189)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:885)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:754)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:441)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:440)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:486)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
	Suppressed: java.lang.RuntimeException
		at com.intellij.openapi.application.WriteAction.computeAndWait(WriteAction.java:162)
		at com.intellij.openapi.application.WriteAction.runAndWait(WriteAction.java:122)
		at com.intellij.workspaceModel.ide.impl.jps.serialization.JpsProjectModelSynchronizer.applyLoadedStorage(JpsProjectModelSynchronizer.kt:211)
		at com.intellij.workspaceModel.ide.impl.jps.serialization.JpsProjectModelSynchronizer.loadProject(JpsProjectModelSynchronizer.kt:229)
		at com.intellij.workspaceModel.ide.impl.jps.serialization.DelayedProjectSynchronizer.runActivity(DelayedProjectSynchronizer.kt:23)
		at com.intellij.ide.startup.impl.StartupManagerImpl.runStartupActivity(StartupManagerImpl.kt:268)
		at com.intellij.ide.startup.impl.StartupManagerImpl.runActivity(StartupManagerImpl.kt:247)
		at com.intellij.ide.startup.impl.StartupManagerImpl.access$runActivity(StartupManagerImpl.kt:59)
		at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$1.accept(StartupManagerImpl.kt:214)
		at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$1.accept(StartupManagerImpl.kt:59)
		at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processWithPluginDescriptor(ExtensionPointImpl.java:293)
		at com.intellij.openapi.extensions.ExtensionPointName.processWithPluginDescriptor(ExtensionPointName.java:156)
		at com.intellij.ide.startup.impl.StartupManagerImpl.runPostStartupActivities(StartupManagerImpl.kt:209)
		at com.intellij.ide.startup.impl.StartupManagerImpl.access$runPostStartupActivities(StartupManagerImpl.kt:59)
		at com.intellij.ide.startup.impl.StartupManagerImpl$projectOpened$3$1.run(StartupManagerImpl.kt:166)
		at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:183)
		at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:705)
		at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:647)
		at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:63)
		at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:170)
		at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:270)
		at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:248)
		at com.intellij.ide.startup.impl.StartupManagerImpl$projectOpened$3.run(StartupManagerImpl.kt:166)
		at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
		at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
		at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
		at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
		at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
		at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)


2021-11-23T12:56:06.218
java.lang.IllegalStateException: Installation path doesn't exist
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacetConfiguration.searchGhidraRoots(GhidraFacetConfiguration.kt:25)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacetConfiguration.loadGhidraInstallation(GhidraFacetConfiguration.kt:62)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet$updateLibrary$$inlined$runWriteAction$1.compute(actions.kt:64)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runWriteAction$15(ApplicationImpl.java:945)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:924)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:945)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet.updateLibrary(GhidraFacet.kt:129)
	at com.codingmates.ghidra.intellij.ide.facet.GhidraFacet$2$rootsChanged$$inlined$invokeLater$1.run(actions.kt:60)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
	at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:350)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:133)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
	at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:189)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:885)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:754)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:441)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:440)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:486)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

It complains that the installation path doesn't exist, but this is simply not true:

dotfiles on  master [$!?] 
[i] ℤ echo $GHIDRA_INSTALL_DIR                                                                                                                                                                                                    12:09:55 
/home/akochkov/Ghidra/ghidra_10.0.4_PUBLIC
dotfiles on  master [$!?] 
[i] ℤ ll ${GHIDRA_INSTALL_DIR}                                                                                                                                                                                                    12:59:41 
drwxr-xr-x@    - akochkov akochkov 2021-09-28 15:59  docs/
drwxr-xr-x@    - akochkov akochkov 2021-09-28 15:59  Extensions/
drwxr-xr-x@    - akochkov akochkov 2021-09-28 15:59  Ghidra/
drwxr-xr-x@    - akochkov akochkov 2021-09-28 15:59  GPL/
drwxr-xr-x@    - akochkov akochkov 2021-09-28 15:59  licenses/
drwxr-xr-x@    - akochkov akochkov 2021-09-28 15:59  server/
drwxr-xr-x@    - akochkov akochkov 2021-10-14 16:09  support/
.rw-r--r--@ 424k akochkov akochkov 2021-10-14 16:09  flatlaf-0.43.jar
.rwxr-xr-x@  883 akochkov akochkov 2021-09-28 15:59  ghidraRun*
.rw-r--r--@  384 akochkov akochkov 2021-09-28 15:59  ghidraRun.bat
.rw-r--r--@  11k akochkov akochkov 2021-09-28 15:59  LICENSE

Help wanted about IDEA Project

I'm a newbie to java development, now I'm trying to develop a ghidra script with IDEA. Thank you in advance for your development of this plug-in🥰.

Now that I have done "Add a Ghidra Facets to Project Structure" and "Add a new Ghidra Launcher in Configurations, " I can get a fully completion suggestion and script result in Ghidra Script Manager.

But when I run my script in IDEA, it first show can't find a class about Log4j , after I manually add the log4j-core and log4j-api to my project, I have rerun the script in IDEA's Ghidra Launcher, it just stuck on (LoggingInitialization), like this:
image

I have no idea what to do to solve this, sorry for my pool English, any suggestion would be aprreciate😘😘😘😘😘

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.