| Summary: | Debugger hangs | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Wassim Melhem <wassim.melhem> | ||||||
| Component: | Debug | Assignee: | Platform-Debug-Inbox <platform-debug-inbox> | ||||||
| Status: | RESOLVED WONTFIX | QA Contact: | |||||||
| Severity: | normal | ||||||||
| Priority: | P3 | CC: | douglas.pollock | ||||||
| Version: | 3.0 | ||||||||
| Target Milestone: | --- | ||||||||
| Hardware: | PC | ||||||||
| OS: | Windows XP | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
|
Description
Wassim Melhem
Can you provide a thread dump? Is it reproduceable? I could reproduce it on cue. It's pretty nasty. How do I produce a thread dump? Just checking but there is nothing in the .log? Is Eclipse locked up or just the debugger? Start Eclipse using java.exe instead of javaw.exe Hit Ctrl-break in the console window The log had many TimeOut exception entries which I see every once in a while, but they are harmless (I think). There is another type of log entry that was in my log and repeated several times. I will paste one of each for reference below. As for hanging, Eclipse hangs. The debugger hangs. The runtime workbench obviously hangs for a few minutes. After that, the debugger comes back to life and gives me an error message saying that some operation has timed out. !MESSAGE Internal error logged from JDI Debug: !STACK 0 org.eclipse.jdi.TimeoutException at org.eclipse.jdi.internal.connect.PacketReceiveManager.getReply (PacketReceiveManager.java:149) at org.eclipse.jdi.internal.connect.PacketReceiveManager.getReply (PacketReceiveManager.java:158) at org.eclipse.jdi.internal.MirrorImpl.requestVM(MirrorImpl.java:173) at org.eclipse.jdi.internal.MirrorImpl.requestVM(MirrorImpl.java:191) at org.eclipse.jdi.internal.MirrorImpl.requestVM(MirrorImpl.java:206) at org.eclipse.jdi.internal.ThreadReferenceImpl.frameCount (ThreadReferenceImpl.java:147) at org.eclipse.jdt.internal.debug.core.model.JDIThread.getUnderlyingFrameCount (JDIThread.java:628) at org.eclipse.jdt.internal.debug.core.model.JDIThread.computeStackFrames (JDIThread.java:415) at org.eclipse.jdt.internal.debug.core.model.JDIThread.computeStackFrames (JDIThread.java:514) at org.eclipse.jdt.internal.debug.core.model.JDIStackFrame.exists (JDIStackFrame.java:908) at org.eclipse.jdt.internal.debug.core.model.JDIStackFrame.canStepReturn (JDIStackFrame.java:197) at org.eclipse.debug.internal.ui.actions.StepReturnActionDelegate.checkCapability (StepReturnActionDelegate.java:23) at org.eclipse.debug.internal.ui.actions.StepActionDelegate.isEnabledFor (StepActionDelegate.java:34) at org.eclipse.debug.internal.ui.actions.AbstractDebugActionDelegate.getEnableStat eForSelection(AbstractDebugActionDelegate.java:310) at org.eclipse.debug.internal.ui.actions.AbstractDebugActionDelegate.update (AbstractDebugActionDelegate.java:151) at org.eclipse.debug.internal.ui.actions.AbstractListenerActionDelegate.doHandleDe bugEvent(AbstractListenerActionDelegate.java:74) at org.eclipse.debug.internal.ui.actions.AbstractListenerActionDelegate$1.run (AbstractListenerActionDelegate.java:54) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages (Synchronizer.java:106) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2561) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2266) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1541) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1515) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench (Workbench.java:257) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:139) at org.eclipse.ui.internal.ide.IDEApplication.run (IDEApplication.java:90) at org.eclipse.core.internal.runtime.PlatformActivator$1.run (PlatformActivator.java:288) at org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:232) at org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:116) 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.core.launcher.Main.basicRun(Main.java:315) at org.eclipse.core.launcher.Main.run(Main.java:740) at org.eclipse.core.launcher.Main.main(Main.java:724) !ENTRY org.eclipse.jdt.debug 4 120 Mar 24, 2004 14:27:00.613 !MESSAGE Internal error logged from JDI Debug: !STACK 0 com.sun.jdi.IncompatibleThreadStateException: Thread was not suspended at org.eclipse.jdi.internal.ThreadReferenceImpl.frameCount (ThreadReferenceImpl.java:152) at org.eclipse.jdt.internal.debug.core.model.JDIThread.getUnderlyingFrameCount (JDIThread.java:628) at org.eclipse.jdt.internal.debug.core.model.JDIThread.computeStackFrames (JDIThread.java:415) at org.eclipse.jdt.internal.debug.core.model.JDIThread.computeStackFrames (JDIThread.java:514) at org.eclipse.jdt.internal.debug.core.model.JDIStackFrame.exists (JDIStackFrame.java:908) at org.eclipse.jdt.internal.debug.core.model.JDIStackFrame.canStepOver (JDIStackFrame.java:185) at org.eclipse.debug.internal.ui.actions.StepOverActionDelegate.checkCapability (StepOverActionDelegate.java:23) at org.eclipse.debug.internal.ui.actions.StepActionDelegate.isEnabledFor (StepActionDelegate.java:34) at org.eclipse.debug.internal.ui.actions.AbstractDebugActionDelegate.getEnableStat eForSelection(AbstractDebugActionDelegate.java:310) at org.eclipse.debug.internal.ui.actions.AbstractDebugActionDelegate.update (AbstractDebugActionDelegate.java:151) at org.eclipse.debug.internal.ui.actions.AbstractListenerActionDelegate.doHandleDe bugEvent(AbstractListenerActionDelegate.java:74) at org.eclipse.debug.internal.ui.actions.AbstractListenerActionDelegate$1.run (AbstractListenerActionDelegate.java:54) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages (Synchronizer.java:106) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2561) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2266) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1541) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1515) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench (Workbench.java:257) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:139) at org.eclipse.ui.internal.ide.IDEApplication.run (IDEApplication.java:90) at org.eclipse.core.internal.runtime.PlatformActivator$1.run (PlatformActivator.java:288) at org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:232) at org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:116) 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.core.launcher.Main.basicRun(Main.java:315) at org.eclipse.core.launcher.Main.run(Main.java:740) at org.eclipse.core.launcher.Main.main(Main.java:724) Tried to reproduce, it didn't lock for me, but it was very busy doing something. It eventually came back.... Also noted that after it came back and I double clicked on other actionsets the debugger stepped quite happily. Could this be the Debug plugin loading? Kevin if you could capture the thread dump while it is "very busy" we could determine the culprit. Kev I don't think it is the plug-in initalizing. It happens to me every single time. Make sure you double-click on an extension whose plugin.xml is NOT in your workspace. Full thread dump Java HotSpot(TM) Client VM (1.4.2-b28 mixed mode):
"Worker-5" prio=5 tid=0x030ccd60 nid=0x7e0 in Object.wait() [49cf000..49cfd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x1064cd58> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:184)
- locked <0x1064cd58> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob
(WorkerPool.java:21
0)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"Worker-4" prio=5 tid=0x030523b0 nid=0xd28 in Object.wait() [498f000..498fd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x1064cd58> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:184)
- locked <0x1064cd58> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob
(WorkerPool.java:21
0)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"Worker-3" prio=5 tid=0x03145b28 nid=0x798 in Object.wait() [494f000..494fd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x1064cd58> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:184)
- locked <0x1064cd58> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob
(WorkerPool.java:21
0)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"org.eclipse.jdt.debug: JDI Event Dispatcher" prio=5 tid=0x0304fdb0 nid=0x320
in
Object.wait() [488f000..488fd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x119b04c0> (a
org.eclipse.jdi.internal.connect.PacketRece
iveManager)
at java.lang.Object.wait(Unknown Source)
at
org.eclipse.jdi.internal.connect.PacketReceiveManager.waitForPacketAv
ailable(PacketReceiveManager.java:168)
at org.eclipse.jdi.internal.connect.PacketReceiveManager.getCommand
(Pack
etReceiveManager.java:93)
- locked <0x119b04c0> (a
org.eclipse.jdi.internal.connect.PacketReceiveM
anager)
at org.eclipse.jdi.internal.MirrorImpl.getCommandVM
(MirrorImpl.java:276)
at org.eclipse.jdi.internal.event.EventQueueImpl.remove
(EventQueueImpl.j
ava:63)
at org.eclipse.jdi.internal.event.EventQueueImpl.remove
(EventQueueImpl.j
ava:48)
at org.eclipse.jdt.internal.debug.core.EventDispatcher.run
(EventDispatch
er.java:213)
at java.lang.Thread.run(Unknown Source)
"Packet Send Manager" prio=5 tid=0x02d65928 nid=0x954 in Object.wait()
[490f000.
.490fd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x119b0608> (a
org.eclipse.jdi.internal.connect.PacketSend
Manager)
at java.lang.Object.wait(Unknown Source)
at
org.eclipse.jdi.internal.connect.PacketSendManager.sendAvailablePacke
ts(PacketSendManager.java:94)
- locked <0x119b0608> (a
org.eclipse.jdi.internal.connect.PacketSendMana
ger)
at org.eclipse.jdi.internal.connect.PacketSendManager.run
(PacketSendMana
ger.java:54)
at java.lang.Thread.run(Unknown Source)
"Packet Receive Manager" prio=5 tid=0x02d657c8 nid=0xa2c runnable
[48cf000..48cf
d94]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.DataInputStream.readInt(Unknown Source)
at org.eclipse.jdi.internal.jdwp.JdwpPacket.read(JdwpPacket.java:124)
at
org.eclipse.jdi.internal.connect.PacketReceiveManager.readAvailablePa
cket(PacketReceiveManager.java:224)
at org.eclipse.jdi.internal.connect.PacketReceiveManager.run
(PacketRecei
veManager.java:70)
at java.lang.Thread.run(Unknown Source)
"Console Polling Thread" prio=7 tid=0x04018ca8 nid=0xd60 waiting on condition
[4
84f000..484fd94]
at java.lang.Thread.sleep(Native Method)
at
org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitione
r.pollAndSleep(ConsoleDocumentPartitioner.java:563)
at
org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitione
r$1.run(ConsoleDocumentPartitioner.java:547)
at java.lang.Thread.run(Unknown Source)
"Input Stream Monitor" prio=5 tid=0x031cc718 nid=0xd14 in Object.wait()
[400f000
..400fd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x119aaa00> (a java.lang.Object)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.debug.internal.core.InputStreamMonitor.writeNext
(InputStr
eamMonitor.java:124)
- locked <0x119aaa00> (a java.lang.Object)
at org.eclipse.debug.internal.core.InputStreamMonitor.write
(InputStreamM
onitor.java:99)
at org.eclipse.debug.internal.core.InputStreamMonitor$1.run
(InputStreamM
onitor.java:75)
at java.lang.Thread.run(Unknown Source)
"Output Stream Monitor" prio=5 tid=0x031cbfb0 nid=0xd6c runnable
[3fcf000..3fcfd
94]
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(Unknown Source)
at org.eclipse.debug.internal.core.OutputStreamMonitor.read
(OutputStream
Monitor.java:132)
at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1
(OutputSt
reamMonitor.java:124)
at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run
(OutputStrea
mMonitor.java:177)
at java.lang.Thread.run(Unknown Source)
"Output Stream Monitor" prio=5 tid=0x031ca4a0 nid=0xd3c runnable
[3f8f000..3f8fd
94]
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
- locked <0x119aaac8> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(Unknown Source)
at org.eclipse.debug.internal.core.OutputStreamMonitor.read
(OutputStream
Monitor.java:132)
at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1
(OutputSt
reamMonitor.java:124)
at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run
(OutputStrea
mMonitor.java:177)
at java.lang.Thread.run(Unknown Source)
"Worker-2" prio=5 tid=0x00a60370 nid=0x134 in Object.wait() [3d4f000..3d4fd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x1064cd58> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:184)
- locked <0x1064cd58> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob
(WorkerPool.java:21
0)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x02d70cc0
n
id=0xa30 runnable [3c3f000..3c3fd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x10d2cf40> (a
org.eclipse.jface.text.reconciler.DirtyRegi
onQueue)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread
.run(AbstractReconciler.java:161)
- locked <0x10d2cf40> (a
org.eclipse.jface.text.reconciler.DirtyRegionQu
eue)
"Worker-1" prio=5 tid=0x02d18658 nid=0xff8 in Object.wait() [3bff000..3bffd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x1064cd58> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:184)
- locked <0x1064cd58> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob
(WorkerPool.java:21
0)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"Worker-0" prio=5 tid=0x02cf88d8 nid=0xe0c runnable [3bbf000..3bbfd94]
at java.lang.Win32Process.waitFor(Native Method)
at org.eclipse.debug.core.model.RuntimeProcess$ProcessMonitorJob.run
(Run
timeProcess.java:350)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:62)
"Java indexing" daemon prio=4 tid=0x02fa3348 nid=0xfec in Object.wait()
[3b7f000
..3b7fd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x109aadf8> (a
org.eclipse.jdt.internal.core.search.indexi
ng.IndexManager)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.jdt.internal.core.search.processing.JobManager.run
(JobMan
ager.java:327)
- locked <0x109aadf8> (a
org.eclipse.jdt.internal.core.search.indexing.I
ndexManager)
at java.lang.Thread.run(Unknown Source)
"Start Level Event Dispatcher" daemon prio=5 tid=0x02cda948 nid=0xd08 in
Object.
wait() [2eff000..2effd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x1056ff70> (a
org.eclipse.osgi.framework.eventmgr.EventTh
read)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent
(EventThr
ead.java:167)
- locked <0x1056ff70> (a
org.eclipse.osgi.framework.eventmgr.EventThread
)
at org.eclipse.osgi.framework.eventmgr.EventThread.run
(EventThread.java:
118)
"Framework Event Dispatcher" daemon prio=5 tid=0x02ce3ea0 nid=0xfac in
Object.wa
it() [2ebf000..2ebfd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x10560d28> (a
org.eclipse.osgi.framework.eventmgr.EventTh
read)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent
(EventThr
ead.java:167)
- locked <0x10560d28> (a
org.eclipse.osgi.framework.eventmgr.EventThread
)
at org.eclipse.osgi.framework.eventmgr.EventThread.run
(EventThread.java:
118)
"Signal Dispatcher" daemon prio=10 tid=0x0003d808 nid=0x150 waiting on
condition
[0..0]
"Finalizer" daemon prio=9 tid=0x009bbd60 nid=0xc84 in Object.wait()
[2b5f000..2b
5fd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x104fb5b8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x104fb5b8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
"Reference Handler" daemon prio=10 tid=0x009ba930 nid=0xbd8 in Object.wait()
[2b
1f000..2b1fd94]
at java.lang.Object.wait(Native Method)
- waiting on <0x104fb620> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x104fb620> (a java.lang.ref.Reference$Lock)
"main" prio=7 tid=0x000352b8 nid=0xee0 runnable [7f000..7fc3c]
at org.eclipse.swt.internal.win32.OS.WaitMessage(Native Method)
at org.eclipse.swt.widgets.Display.sleep(Display.java:2888)
at org.eclipse.ui.application.WorkbenchAdvisor.eventLoopIdle
(WorkbenchAd
visor.java:349)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1542)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1515)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
(Workbench.jav
a:257)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:139)
at org.eclipse.ui.internal.ide.IDEApplication.run
(IDEApplication.java:90
)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run
(PlatformAct
ivator.java:288)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.ja
va:232)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.ja
va:116)
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.core.launcher.Main.basicRun(Main.java:315)
at org.eclipse.core.launcher.Main.run(Main.java:740)
at org.eclipse.core.launcher.Main.main(Main.java:724)
"VM Thread" prio=5 tid=0x009f7668 nid=0x140 runnable
"VM Periodic Task Thread" prio=10 tid=0x0003ff00 nid=0x51c waiting on condition
"Suspend Checker Thread" prio=10 tid=0x009be1e0 nid=0x804 runnable
Created attachment 8849 [details]
ThreadDump
This time I actually got an error message - Step over failed. Thread dump says
main thread is blocked on PacketSendManager.sendPacket()
My log is full of:
"com.sun.jdi.IncompatibleThreadStateException: Thread was not suspended"
and
"!MESSAGE org.eclipse.jdi.TimeoutException occurred determining if object has
been garbage collected.
!STACK 0
org.eclipse.jdi.TimeoutException"
Created attachment 8850 [details]
Log file
This is related to Bug# 55976 Sorry I don't see the connection? No in-place editor here. You're right, it was wishful thinking. It looked like both were having problems in EditorManager.openEditorFromDescriptor(), but after that call they go different directions. (from Kevin Barnes) Spent some more time on this bug tonight. I modified your DocumentModel.load() method because it seemed to be taking a long time to return when I was stepping through the code. What I learned from this was that stepping is really slowing things down. For example the load method took 220,937ms to return when stepping, but the same test with the Thread running took only 3500ms. Obviously this is really bad. The theory I have is that load() makes a lot of fast returning methods calls. This would lead to a lot of socket I/O between the host and the target, and it would probably lead to a lot of juggling of locks in our PacketManager classes that manage the I/O. Appears to be an issue with the target VM. With Sun JDK1.4.2, the target VM eats up 99% of the CPU for a long time as we step over the line of code (minutes). Using SC1.4, the step takes about 8 seconds. Not sure why, but could be some sublte locking/debug interaction on the target VM. This may be related to Bug 60136. Wassim do you know how line 382 in the "old" manifest editor maps to the new manifest editor. Since the class has changed packages, etc., I'm not sure how to reproduce this problem anymore. That is the main reason why we rewrote the editors from scratch: to not encounter this bug :-) Seriously though, the piece of code where the debugger was hanging has been removed. I'm sure Doug has a reproducible scenario of his own though. Currently marking as won't fix. When we investigate this, we found the problem previously was VM specific, and the bug Doug mentioned is a different (resolved) problem. This bug might be in relation to Bug 170068: https://bugs.eclipse.org/bugs/show_bug.cgi?id=170068 |