You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jdb命令行调试时无法显示待执行代码行的问题

解决JDB单步调试不显示待执行代码行的问题

1. 编译时必须生成调试符号

JDB需要依赖编译时生成的调试信息才能关联行号与代码内容,你当前的编译命令大概率没添加调试参数。重新编译代码时加上-g参数:

javac -g Main.java

-g会生成完整的调试符号(行号、源文件引用、局部变量信息),这是显示代码内容的核心前提。

2. 在JDB中查看对应代码行的两种方式

手动执行list命令

每次执行step完成后,输入list就能显示当前行附近的代码:

main[1] step
Step completed: "thread=main", Main.main(), line=4 bci=8
main[1] list
3        System.out.println("Hello world!");
4        System.out.println("Hello world! line 2");
5        System.out.println("Hello world! line 3");

可以用set listsize <数字>调整显示行数,比如set listsize 10会显示当前行前后共10行代码。

开启自动显示(部分JDK版本支持)

在JDB会话中执行以下命令,开启后每次暂停(断点触发、单步完成)会自动输出对应代码行:

main[1] set autolist on

版本相关说明

你使用的JDK 18不存在功能缺失问题,教程里的效果就是靠调试符号+list/autolist实现的,和版本无关。

内容的提问来源于stack exchange,提问作者mpettis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 19:35:26