我正面临Eclipse Debugger的以下问题。我直接从Eclipse开始在调试模式下启动JBoss 5.1(这个过程几乎整天运行而不重启)有时我想用客户端应用程序(Swing + OSGi)启动新的Debug-Sesion或者事件调试一些JUnit-测试eclipse启动过程,但这个新进程立即暂停。当我将Perspective更改为debug时,我可以看到两个进程--JBoss正在运行而没有问题,但是新进程被暂停 - 控制台输出是明确的,进程为Eclipse-Icon提供了挂起的线程。有时它有助于选择此过程并按绿色的“恢复”按钮,有时我必须使用“终止删除”来终止此过程。当我尝试再次运行此过程时,我有时会在相同的情况下运行,有时会毫无问题地运行新进程。
非常奇怪的是,当eclipse“暂停”新的Client-App-process并且我在Debug Perpective中杀死了JBoss进程时,第二个被暂停的进程突然运行。我认为,这两个进程在某种“僵局”情况下运行,但我不知道如何解决这个问题。
我没有任何想法,这个问题的原因是什么...... 我的环境:Eclipse 4.3.2,Java 1.7.0_21-64bit
答案 0 :(得分:0)
该程序可以帮助您了解您的情况:
class Solution {
public static ListNode reverseKGroup(ListNode head, int k) {
ListNode dummyHead = new ListNode(0);
dummyHead.next = head;
ListNode prev = dummyHead, cur = dummyHead;
while (cur != null) {
for (int i = 0; i < k; i++) {
if (cur == null || cur.next == null) return dummyHead.next;
cur = cur.next;
}
ListNode nxt = prev.next;
prev.next = reverse(prev.next, cur.next);
prev = nxt;
System.out.println(prev);
cur = nxt;
}
return dummyHead.next;
}
private static ListNode reverse(ListNode head, ListNode tail) {
if (head == tail || head.next == tail) return head;
ListNode prev = head, cur = head.next;
while (cur != tail) {
ListNode nxt = cur.next;
cur.next = prev;
//System.out.println("cur.next:" + cur.next);
prev = cur;
//System.out.println("prev:" + prev);
cur = nxt;
}
//head.next = tail;
return prev;
}
public static void main(String[] args) {
ListNode l1 = new ListNode(1);
l1.next = new ListNode(2);
l1.next.next = new ListNode(3);
l1.next.next.next = new ListNode(4);
l1.next.next.next.next= new ListNode(5);
System.out.println(reverseKGroup(l1, 3));
}
}
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
public String toString(){
String retVal = "";
ListNode n = this;
while(n!=null){
retVal += n.val +" ";
n = n.next;
}
return retVal;
}
}
当您启动调试器并尝试调试prev的值时,该过程将被挂起。