1

Eclipse プラグインを作成しており、JDIDebugModel を使用して JavaLineBreakpoint を作成しようとしています。

ただし、Java エディターから行ブレークポイントを作成すると、クラス名、行番号、およびメソッド名が次の図のように表示されます。

ここに画像の説明を入力

プラグインで行ブレークポイントが作成されると、次のようにメソッド名がクラス名に置き換えられます。

エディタでブレークポイントを作成

以下は、ブレークポイントを作成するために使用されるコードです。

ありがとうございました。

IBreakpoint[] breakpoints = DebugPlugin.getDefault().getBreakpointManager().getBreakpoints();
if (breakpoints.length == 0) {
    return null;
}

IJavaLineBreakpoint oldBreakpoint = null;
for (int i = 0; i < breakpoints.length; i++) {
    IBreakpoint breakpoint = breakpoints[i];
    if (breakpoint instanceof IJavaLineBreakpoint) {
        oldBreakpoint = (IJavaLineBreakpoint)breakpoint;
        break;
    }
}
if (oldBreakpoint != null) {
    Map newAttrMap = null;
    IResource resource = null;
    try {
        IMarker marker = oldBreakpoint.getMarker();
        if (marker != null && marker.exists()) {
            newAttrMap = marker.getAttributes();
            resource = marker.getResource();
        }
    } catch (CoreException ce) {
        Activator.logError("SinfoniaCloudBreakpointItem - Contructor - Marker attributes not found", ce);
    }
    int lineNumber = -1;
    try {
        lineNumber = (Integer)newAttrMap.get(IMarker.LINE_NUMBER);
    } catch (ClassCastException cce) {
    } catch (NullPointerException ne) {
    }
    try {
        JDIDebugModel.createLineBreakpoint( 
                resource,
                oldBreakpoint.getTypeName(),
                lineNumber, -1, -1, 0, true, newAttrMap);

        oldBreakpoint.delete();
    } catch (CoreException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
4

0 に答える 0