llmhyy / microbat

A feedback-based debugger for interactively recommending suspicious step in buggy program execution.
55 stars 16 forks source link

Release version not working in Mac os #190

Closed SongXueZhi closed 4 years ago

SongXueZhi commented 4 years ago

Micro bat are not working in macOS. The exception as follows: ENTRY org.eclipse.ui 4 0 2020-08-17 12:24:51.395 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.NoClassDefFoundError: Could not initialize class microbat.util.IResourceUtils at microbat.util.MicroBatUtil.setSystemJars(MicroBatUtil.java:148) at microbat.util.MicroBatUtil.constructClassPaths(MicroBatUtil.java:111) at microbat.util.MicroBatUtil.constructClassPaths(MicroBatUtil.java:53) at microbat.handler.StartDebugHandler.execute(StartDebugHandler.java:59) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:291) at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:92) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:305) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:239) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132) at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:487) at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210) at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:431) at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:446) at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:472) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4258) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1502) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1525) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1510) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1314) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4082) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3699) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590) at org.eclipse.equinox.launcher.Main.run(Main.java:1499)

SongXueZhi commented 4 years ago

I find Microbat get a wrong dropins path in mac, I printed the path: eclipseExecutablePath :/Users/knightsong/Desktop/Eclipse.app/Contents/MacOS/ eclipseuserDir :/Users/knightsong/Desktop/Eclipse.app/Contents/MacOS dropinsDir /Users/knightsong/Desktop/Eclipse.app/Contents/MacOS/dropins The actual path in mac: image the related code as follows: image

There may need some changes