尝试从命令行学习jdbc。从教程中,我希望看到步进行时的代码行输出,但我没有。
下面是我编译的示例代码:
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
System.out.println("Hello world! line 2");
System.out.println("Hello world! line 3");
}
}
$ ~/jdk-18.0.2.1/bin/jdb.exe Main
Initializing jdb ...
> stop at Main.main
Deferring breakpoint Main.main.
It will be set after the class is loaded.
> run
run Main
Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable
>
VM Started: Set deferred breakpoint Main.main
Breakpoint hit: "thread=main", Main.main(), line=3 bci=0
main[1] step
> Hell
Step completed: o world!
"thread=main", Main.main(), line=4 bci=8
main[1] step
> Hello world! line 2
Step completed: "thread=main", Main.main(), line=5 bci=16
main[1]
注意,这里显示的是输出,但我希望看到即将执行的代码行,以及显示的行号,如:
3 System.out.println("Hello world!");
我看过有这种情况的屏幕截图的教程,我想知道我是否有一个缺失的设置或错误的jdbc版本或其他东西。
您可以使用选项列表显示当前位置周围的行
在AVD内调试android应用程序时遇到同样的问题。即使我定义了正确的-sourcepath
,我也无法列出源代码。
我需要从正确的目录执行jdbc。如果类属于任何包,例如类MainActivity
属于包org.gradle.samples
,那么您的项目文件夹包含以下目录:
yourProject/
├── src
│ └── main
│ └── java
│ └── org
│ └── gradle
│ └── samples
│ └── MainActivity.java
然后您必须从<pathToYourProject>/src/main/java
执行jdb
,其中JDB-sourcepath
也是<pathToYourProject>/src/main/java
。