分类
开发者 未分类

COMCTL导致Windows7下的Eclipse崩溃,怎么办?

昨天开始在Windows7下工作。
开始的时候一切都很好。
但从昨天下午Eclipse开始频繁的崩溃,几乎每小时都要崩溃一次。

日志里面写的是:
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x73f1a7e9, pid=1772, tid=3216
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_16-b02 mixed mode)
# Problematic frame:
# C [COMCTL32.dll+0xaa7e9]
#

COMCTL是Windows Common Controls Library的意思。
负责系统GUI的,Eclipse崩溃应该是我正在使用的SWT导致。
但这个问题怎么解决也没找到,有谁能指点一二?

Get busy living, or get busy dying. 【忙活,或者等死。】

分类
开发者 未分类

在Eclipse 3.2核心中发现的一段诡异代码

位于org.eclipse.ui.workbenck.texteditor_3.2.0v20060605-1400.jar包的
org.eclipse.ui.texteditor.AbstractTextEditor.class中。
2569行开始
直观上感觉这段代码是想支持鼠标手势的
/* gestures commented out until proper solution (i.e. preference page) can be found
* for bug # 28417:
*
final Map gestureMap= new HashMap();
gestureMap.put("E", "org.eclipse.ui.navigate.forwardHistory");
gestureMap.put("N", "org.eclipse.ui.file.save");
gestureMap.put("NW", "org.eclipse.ui.file.saveAll");
gestureMap.put("S", "org.eclipse.ui.file.close");
gestureMap.put("SW", "org.eclipse.ui.file.closeAll");
gestureMap.put("W", "org.eclipse.ui.navigate.backwardHistory");
gestureMap.put("EN", "org.eclipse.ui.edit.copy");
gestureMap.put("ES", "org.eclipse.ui.edit.paste");
gestureMap.put("EW", "org.eclipse.ui.edit.cut");
Capture capture= Capture.create();
capture.setControl(styledText);
capture.addCaptureListener(new CaptureListener() {
public void gesture(Gesture gesture) {
if (gesture.getPen() == 3) {
String actionId= (String) gestureMap.get(Util.recognize(gesture.getPoints(), 20));
if (actionId != null) {
IKeyBindingService keyBindingService= getEditorSite().getKeyBindingService();
if (keyBindingService instanceof KeyBindingService) {
IAction action= ((KeyBindingService) keyBindingService).getAction(actionId);
if (action != null) {
if (action instanceof IUpdate)
((IUpdate) action).update();
if (action.isEnabled())
action.run();
}
}
return;
}
fTextContextMenu.setVisible(true);
}
};
});
*/