Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中调试Thread.start()_Java_Multithreading_Debugging_Netbeans 8 - Fatal编程技术网

如何在java中调试Thread.start()

如何在java中调试Thread.start(),java,multithreading,debugging,netbeans-8,Java,Multithreading,Debugging,Netbeans 8,我正在用NetBeans IDE 8.0.2调试一个Java应用程序 调用Thread.start()方法时,我无法访问该线程的run()方法(尽管我在该方法中设置了断点)。 然而,有时它是击中方法,但有时不是 调试时如何访问run()方法 public class JavaApplication7 { public static void main(String[] args) { Mailthread1 mt1 = new Mailthread1();

我正在用NetBeans IDE 8.0.2调试一个Java应用程序

调用
Thread.start()
方法时,我无法访问该线程的
run()
方法(尽管我在该方法中设置了断点)。 然而,有时它是击中方法,但有时不是

调试时如何访问
run()
方法

public class JavaApplication7 {

    public static void main(String[] args) {
        Mailthread1 mt1 = new Mailthread1();
        Thread pt = new Thread(mt1);
        pt.setName("Mailthread");
        pt.start();
    }
}
线程类是:

class Mailthread1 implements Runnable {
    public void run() {
        System.out.println("Cant hit this line");
    }
}

在JDWP中,有3种类型的断点:类、方法和行

如果IDE未能截获println()中的行断点,则可以在run()重新关联上尝试方法断点

如果失败,则字节码和源代码之间存在不同步。您可以尝试添加行,在上面和下面中断另一行


除此之外,更改IDE和/或更改JVM。这应该是可行的。

很多好的建议。这闻起来像是一个锁定的监视器问题,但我们需要看到一个小的测试用例来演示这种行为以进行诊断。如果这是有问题的,请尝试查看所有jvm线程的转储(它将列出它们是否被阻止,如果被阻止,等等)。@Shar1er80,添加了代码……这是NetBeans 8.0.2的问题。[link]()您将永远无法通过进入
start()
函数进入
run()
函数。
run()
函数在与单步执行不同的线程中调用。