Error in PHP ui/Xdebug [message #61250] |
Mon, 19 November 2007 19:02 |
Eclipse User |
|
|
|
Originally posted by: noah_ten.yahoo.com
My Xdebug/PDT configuration suddenly stopped working: Whenever I try to
launch a previously-working Xdebug web script debugger configuration it
fails to call my browser and does not open the PHP Debug perspective
(regardless of how my preferences for this are set). I know the problem
isn't with Xdebug per se because I can use the command line DBG debug
client and it works properly. I haven't made any recent changes to PDT,
PHP or Xdebug that might have caused this.
I have seen two entries in the eclipse log that look suspicious. The first
happens when I go to Web->Preferences->PHP->Debug. That panel looks wrong
because there is no "Debug Options" section above the "Installed
Debuggers" section. Furthermore, going to that panel generates the
following stack trace in the log:
!ENTRY org.eclipse.php.ui 4 10001 2007-11-19 15:44:35.218
!MESSAGE PHP ui plugin internal error
!STACK 0
java.lang.ArrayIndexOutOfBoundsException: 0
at org.eclipse.php.internal.debug.core.preferences.PHPexes.load (Unknown
Source)
at org.eclipse.php.internal.debug.core.preferences.PHPexes.<init >(Unknown
Source)
at
org.eclipse.php.internal.debug.core.preferences.PHPexes.getI nstance(Unknown
Source)
at
org.eclipse.php.internal.debug.ui.preferences.PHPDebugPrefer encesAddon.initializeValues(Unknown
Source)
at
org.eclipse.php.internal.ui.preferences.AbstractPHPPropertyP referencePage.createProjectContents(Unknown
Source)
at
org.eclipse.php.internal.ui.preferences.AbstractPHPPropertyP referencePage.createContents(Unknown
Source)
at
org.eclipse.jface.preference.PreferencePage.createControl(Pr eferencePage.java:233)
at
org.eclipse.php.internal.ui.preferences.AbstractPHPPropertyP referencePage.createControl(Unknown
Source)
at
org.eclipse.jface.preference.PreferenceDialog.createPageCont rol(PreferenceDialog.java:1438)
at
org.eclipse.jface.preference.PreferenceDialog$13.run(Prefere nceDialog.java:1195)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:850)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:19 3)
at
org.eclipse.jface.preference.PreferenceDialog.showPage(Prefe renceDialog.java:1189)
at
org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.sho wPage(FilteredPreferenceDialog.java:433)
at
org.eclipse.jface.preference.PreferenceDialog$9.selectionCha nged(PreferenceDialog.java:694)
at
org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredV iewer.java:842)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:850)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:19 3)
at
org.eclipse.jface.viewers.StructuredViewer.firePostSelection Changed(StructuredViewer.java:840)
at
org.eclipse.jface.viewers.StructuredViewer.handlePostSelect( StructuredViewer.java:1153)
at
org.eclipse.jface.viewers.StructuredViewer$5.widgetSelected( StructuredViewer.java:1178)
at
org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(O penStrategy.java:250)
at org.eclipse.jface.util.OpenStrategy.access$4(OpenStrategy.ja va:244)
at org.eclipse.jface.util.OpenStrategy$3.run(OpenStrategy.java: 418)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:3650)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3287)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820 )
at org.eclipse.jface.window.Window.open(Window.java:796)
at
org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPrefer encesAction.java:65)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498 )
at
org.eclipse.jface.action.ActionContributionItem.handleWidget Selection(ActionContributionItem.java:545)
at
org.eclipse.jface.action.ActionContributionItem.access$2(Act ionContributionItem.java:490)
at
org.eclipse.jface.action.ActionContributionItem$5.handleEven t(ActionContributionItem.java:402)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3673)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3284)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:22 19)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:289)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:106)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:153)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:106)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:76)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:363)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 497)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:436)
at org.eclipse.equinox.launcher.Main.run(Main.java:1162)
The second interesting log message error appears when I shut down eclipse
after having (unsuccessfully) attempted to start an Xdebug session:
!ENTRY org.eclipse.php.xdebug.core 4 4 2007-11-19 15:32:37.859
!MESSAGE class org.eclipse.php.xdebug.core.dbgp.session.DBGpSessionHandler
: Could not open DBGp Port:9000
java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at
org.eclipse.php.xdebug.core.dbgp.session.DBGpSessionHandler. <init>(DBGpSessionHandler.java:87)
at
org.eclipse.php.xdebug.core.dbgp.session.DBGpSessionHandler. getGlobalDBGpSessionHandler(DBGpSessionHandler.java:48)
at org.eclipse.php.xdebug.core.Activator.stop(Activator.java:52 )
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl$3 .run(BundleContextImpl.java:1040)
at java.security.AccessController.doPrivileged(Native Method)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.s top(BundleContextImpl.java:1036)
at
org.eclipse.osgi.framework.internal.core.BundleHost.stopWork er(BundleHost.java:457)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.susp end(AbstractBundle.java:526)
at
org.eclipse.osgi.framework.internal.core.Framework.suspendBu ndle(Framework.java:1148)
at
org.eclipse.osgi.framework.internal.core.StartLevelManager.d ecFWSL(StartLevelManager.java:675)
at
org.eclipse.osgi.framework.internal.core.StartLevelManager.d oSetStartLevel(StartLevelManager.java:291)
at
org.eclipse.osgi.framework.internal.core.StartLevelManager.s hutdown(StartLevelManager.java:261)
at
org.eclipse.osgi.framework.internal.core.SystemBundle.suspen d(SystemBundle.java:188)
at
org.eclipse.osgi.framework.internal.core.Framework.shutdown( Framework.java:622)
at
org.eclipse.osgi.framework.internal.core.Framework.close(Fra mework.java:525)
at org.eclipse.osgi.framework.internal.core.OSGi.close(OSGi.jav a:41)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(Ecl ipseStarter.java:399)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:197)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 497)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:436)
at org.eclipse.equinox.launcher.Main.run(Main.java:1162)
I've confirmed with netstat that port 9000 does indeed get bound when I
attempt to start an xdebug session with PDT, so it's at least doing that
much.
I've tried upgrading to PDT 1.0.1 (from 1.0.0) in an attempt to fix this,
but it didn't help.
My best guess is that some eclipse cache/preferences got corrupted, it no
longer knows where to find the PHP executable, and that this interferes
with the operation of Xdebug. I'd love to hear anything that would confirm
or deny that hypothesis and better yet any suggestions anyone might have
about how to fix the problem. (Short of a complete wipe and re-install of
PDT, which I'll only do as a last resort.)
Thanks,
Noah
|
|
|
Powered by
FUDForum. Page generated in 0.03475 seconds