jdb在给定的行或方法处停止

时间:2016-01-16 04:28:45

标签: java debugging jdb

作为一名倾向于CLI的程序员,我想问一下Java命令行调试器JDB是否能够从当前位置运行并在给定行停止?

例如,

200   public Trade create(TradeCreateReq req) {
201        validatePayments(req);
202 =>     Trade t = new Trade(OutBizType.of(req.getOutBizType()), req.getOuterId());
203
204        buildItem
205            .andThen(buildBuyer)
206            .andThen(buildToAddress)
207            .andThen(buildInvoice)
208            .andThen(buildPayTools)
209            .accept(req, t);
210
211        if (!t.isSecured())
212            t.setSecured(true);
213
214        return t;
215    }

我希望使用单个jdb命令前进到第211行,而不是键入7' next'命令或在211处设置断点。粗略地看一下'' next'' cont'没有给我答案。

我知道Perl CLI调试器可以很好地完成这项工作。' c'命令。

谢谢!

1 个答案:

答案 0 :(得分:1)

阅读文档:

http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html

run to cursor只是一个由以下内容组成的高级调试命令:

  • 设置断点(在文件:行处停止)
  • 继续
  • 明确断点

看到没有禁用断点或在达到计数时间时禁用,这些是高级调试命令,调试cli应该复合并保留在内存中。

您可以轻松地在vim插件上复制这些命令,例如

https://github.com/yuratomo/dbg.vim/blob/master/autoload/dbg/engines/jdb.vim