java - 如何在 Java jdb 中跳过断点一定次数?

标签 java debugging jdb

如何在 jdb 中跳过指定次数的断点?

jdb的帮助提供了这样的提示:

!!                        -- repeat last command
<n> <command>             -- repeat command n times
# <command>               -- discard (no-op)

当我尝试跳过 n 次断点时,如下所示:

80 cont

或者像这样:

80 run

jdb barfs:

main[1] 80 cont
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.

Breakpoint hit: main[1] > Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.Exception in thread "event-handler" java.lang.NullPointerException
        at com.sun.tools.example.debug.tty.TTY.printCurrentLocation(TTY.java:212)
        at com.sun.tools.example.debug.tty.TTY.vmInterrupted(TTY.java:189)
        at com.sun.tools.example.debug.tty.EventHandler.run(EventHandler.java:86)
        at java.lang.Thread.run(Thread.java:619)

> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.

这里发生了什么?如何获得所需的行为?

版本:

> version
This is jdb version 1.6 (J2SE version 1.6.0_16)
Java Debug Interface (Reference Implementation) version 1.6
Java Debug Wire Protocol (Reference Implementation) version 1.6
JVM Debug Interface version 1.1
JVM version 1.6.0_17 (Java HotSpot(TM) Client VM, mixed mode, sharing)

澄清一下,我正在远程调试。例如,我的第一个窗口是这样启动的:

% java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n LZWDecompress

我的第二个窗口是这样开始的:

% jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8000

最佳答案

不幸的是,jdb 中的断点不提供任何奇特的功能,例如条件断点或“每 n 次迭代停止一次”。

但是,由于无论如何您都在远程连接,您可能需要考虑在编辑器中使用调试器,因为大多数编辑器都会让您连接到远程机器。由于大部分的调试工作都是在JVM中完成的,而只有显示是由编辑器完成的,所以不会比使用jdb慢多少。

关于java - 如何在 Java jdb 中跳过断点一定次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1857154/

相关文章:

Java继承奇怪的行为

使用 waitForDebugger 与 jdb 混淆的 Android

java - JDB 面临问题 - 未命中断点

java - 亚马逊 linux - 安装 openjdk-debuginfo?

c++ - 如何在没有开发 IDE 的系统上处理我的 C++ 程序崩溃?

debugging - 如何在 lan --host 上调试 Vue 3 Vite

java - Pluggable Annotation Processor API 可以检索源代码注释吗?

java - 在Android中获取Bitmap的所有像素

Java LinkedList 在索引处插入对象