1. ホーム
  2. java

[解決済み] デバッガ評価内で発生したため、ブレークポイントをスキップ - Intellij IDEA

2022-02-13 15:34:38

質問

プロジェクトのメソッドの実行行にブレークポイントを設定しようとすると、このメソッドが例えば4回起動されることがわかっている場合、Intellijはこのブレークポイントを3回分スキップし、最後の起動時のみ停止させます。 メソッドの例(Endpointクラス)。

    @PayloadRoot(localPart = "getRelatedCIs", namespace = "http://www.projectname.com/ws")
public GetRelatedCIsResponse getRelatedCIs(GetRelatedCIs request) throws DataAccessException, WebServiceException {
    GetRelatedCIsResponse response = new GetRelatedCIsResponse();
    PageData page = request.getPageData();
    List<ConfigItemReference> ciRefs = translateCiRefList(request.getCiRef());
    RelatedCiResult relatedCis = configItemService.getRelatedCis(ciRefs, request.getRequestedType(),
            new Page(page.getPageNumber(), page.getPageSize(), page.getTotal()), request.getSort());
    response.getCis().addAll(relatedCis.getCis());
    page.setTotal(relatedCis.getPageInfo().getTotal());
    page.setPageSize(relatedCis.getPageInfo().getPageSize());
    response.setPageData(page);
    System.out.println("****************************INVOCATION***************************" + request.getRequestedType());
    return response;
}

ブレークポイントは、メソッドの最初の行に設定されています。プログラムを停止すると、すでに3行がコンソールに出力されています。

画面左下に緑色の通知が表示されます。

コード参照%でのブレークポイントは、デバッガ評価内で発生したためスキップされました。

しかし、私はデバッグを行う際に、Evaluate Expressionの機能を一切使っていません。 また、Run/Debug ConfigurationsのVMオプションもあります。

-XX:MaxPermSize=512m 
-Xms256m 
-Xmx1024m 
-Dcom.sun.management.jmxremote=true 
-Dcom.sun.management.jmxremote.port=9004 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false

解決方法は?

この問題は IDEA-43728 と、その中の ブレークポイントに関する文書 .

要するに、これを避けるには、(すべてではなく)スレッド中断のブレークポイントポリシーを使用します。