使用IntelliJ和Debug进行VisualVm的分析

Kle*_*rbe 4 java debugging visualvm intellij-idea jvisualvm

我想描述IntelliJ启动的测试应用程序.对于分析,我使用了VisualVm.

我用参数启动了java工具-J-Dorg.netbeans.profiler.separateConsole=true.

我使用VM参数启动了应用程序-Xverify:none,否则如果我开始分析,VisualVM会抛出错误(重新定义失败,错误62)

我想在执行任何重要代码之前分析我的应用程序,所以我尝试设置一个断点并在VisualVM中开始分析.问题是当我在断点处等待时,VisualVm不响应任何交互.我错过了什么吗?

在正常执行(没有调试)中,我的程序等待输入,所以我可以在不调试的情况下对其进行分析.但是如果一个程序没有这样的"等待点"呢?

我的测试应用程序看起来像:

package my.visualvm.example;

import java.util.Scanner;

public class MainClass {

    public static void main(String[] args) {

        System.out.println("Starting Application: " + MainClass.class.getSimpleName());

        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNext()) {
            double value = scanner.nextDouble();
            if (value == 0d) {
                break;
            }
            System.out.println(Powa.powaPowa(value));
        }

        System.out.println("Stopping Application: " + MainClass.class.getSimpleName());
    }

}
Run Code Online (Sandbox Code Playgroud)

其他课程:

package my.visualvm.example;

final class Powa {

    private Powa() {
    }

    static double powaPowa(double powa) {
        return Math.pow(powa, 2);
    }
}
Run Code Online (Sandbox Code Playgroud)

Meo*_*Meo 9

将断点设置为仅挂起当前线程. 在此输入图像描述

  • 太感谢了。我找了几个小时! (3认同)