我正在 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();
}
}
Thread 类是:
class Mailthread1 implements Runnable {
public void run() {
System.out.println("Cant hit this line");
}
}
最佳答案
在JDWP中,有3种类型的断点:类、方法和行。
如果您的 IDE 无法拦截 println() 中的行断点,那么您可以尝试在 run() 声明中设置方法断点。
如果失败,则字节码和源代码之间存在某些不同步的地方。您可以尝试添加行,在上方和下方设置另一行断点。
除此之外,更改 IDE 和/或更改 JVM。这应该有效。
关于java - 如何在 Java 中调试 Thread.start(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31383444/