问题标签 [jdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android DDMS 未列出设备上运行的应用
将 DDMS 运行到模拟器允许我查看所有当前运行的应用程序及其各自的端口号,然后我可以在 JDB 上使用它们。
DDMS 到实际设备确实在 DDMS 窗口中列出了该设备,但我无法将其展开以显示所有当前运行的应用程序。
AKA,模拟器上的所有应用程序都是可调试的,但不是设备上的。
我在设备上做错了吗?
java - 了解 Java 调试如何真正在幕后工作
我的问题与调试有关——尤其是在 java/jvm 上。
我想知道如何在 Java 中进行调试:
- 如何将java源代码中设置的断点
jdb/jvm
匹配到当前正在执行的字节码。
有人可以回答上述问题和/或指出与 jvm 调试相关的文档/规范及其工作原理吗?
java - jdb - 找不到或无法加载主类 Main
我想使用 jdb,我已经尝试运行它几个小时,并且我已经搜索了所有示例。我认为这是一个语法问题.. 我正在尝试像这样运行它:
//------------------------------------------ 我也试着把完整的路径是:
C:/Users/Daniel/Documents/NetBeansProjects/Try/src/pkgtry/Main.java
java - 在控制台上调试 java 框架的方法
我是一名 C++ 开发人员,在 Java 技术领域工作了大约一年。原谅我的无知,但我试图搜索以下两个问题。在控制台中为 java 应用程序调试的最佳方法是什么(ala gdb in good ol' C++)。
- 看来jdb低于标准。
- Eclipse 是其 IDE 的必经之路。但是 Eclipse 是一个 GUI,我确实在 unix 服务器上的控制台中进行开发。驯服巨大的 jave 开源框架的最佳方法是什么。例如,骆驼,休眠,春天,logback,等等,等等
java - JDB 断点未注册
我正在尝试使用 jdb 调试我的程序。我在 javac 上使用 -g 编译,但我无法在我的代码中设置任何断点。我设置的那些被 jdb 忽略,它运行我的整个程序然后退出。
有人可以帮我处理jdb吗?
文件系统布局:
到目前为止我所做的尝试:
在我的代码中,main 做的第一件事是类 method1。但是,jdb 完全忽略了断点。如何让 jdb 在此断点处停止?我必须用 jdb 设置其他东西吗?FWIW,我没有使用任何其他 .jar 文件/以任何特殊方式使用 CLASSPATH 来运行我的程序。
java - 使用 tomcat 服务器连接到 mySql DB 时出错
我正在使用tomcat服务器开发基于struts的Web应用程序,使用jdbc连接数据库,并使用mySql和sql server DB,并添加了相关的jar,但是有这个异常如何解决问题。
name-mangling - Setting breakpoints at methods of inner and anonymous classes in JDB
I'm attempting to operate JDB programmatically. Unlike any sane debugger, JDB refers to the source code using class names instead of source file names. I'm assuming it's related to having the bytecode stored in multiple .class files instead of a single file(you would expect compilation with the -g
flag to produce some reference to the source files, but making things easy is not the Java way...)
When JDB refers to classes I can usually do some string manipulations and look at the source file names to figure out which source file declares the relevant class. When I need to supply a class name for a breakpoint, I can read the file to get the package name, use the file name as the class name and generate the full class name that way. These two cases I got them working.
The problem starts with inner classes and anonymous classes. They reside in their own class files, and their names are mangled versions of the class that contains them. To set a breakpoint there I need the mangled name.
For example - this is Main.java
(+line numbers):
I compile it using javac -g Main.java
and got Main.class
and Main$1.class
. I'm running jdb
:
(I needed that part to load Main.class
- otherwise I would simply get "It will be set after the class is loaded." for all the breakpoint setting attempts.)
If I set a breakpoint for line 8 it works properly:
If I set a breakpoint for line 5 - which is part of the anonymous class - I get an error:
Line 5 clearly contains code - the problem is that the code is not compiled into Main.class
- it's compiled into Main$1.class
, so I need to write instead:
Now, the way Java splits the bytecode into .class files is deterministic, and in this simple example it's easy to figure out what goes where - when you examine it with human eyes - but I need a way to figure the mangled class names programmatically(with VimScript) for real world source files. Trying to syntactically analyze the source file and figure out which is what is too complex a task - there ought to be a simpler way.
Maybe extract that information from the .class files, or question JDB about it, or even make JDB use source file names like any sane debugger for any sane language...
java - ant jdb 立即从任务返回
我想使用 ant 来运行一个类,然后是调试器(jdb)或者相反
无论我做什么,我都需要一个立即返回,因为另一个需要附加......
这是我目前正在处理的两个任务......(其中调试是目标运行)
java - 使用 jdb 调试时暂停 Android 应用程序,以便可以设置捕获点
在模拟器上使用开发人员工具,我有一个应用程序在启动之前等待调试器,但在附加 jdb 后,应用程序将立即出现一个不受欢迎但已处理的异常。我无法调试此异常,因为 jdb 不会停止它。因此,我需要能够catch java.lang.Exception
在应用程序继续之前进行设置。我怎样才能做到这一点?
我将 jdb 用于:
scala - 无法使用 jdb 和 sbt 设置断点
附加到 sbt 时,我无法让断点在 jdb 中命中。我编写了以下 scala 代码,并将其放在一个名为 test.scala 的文件中:
然后,在包含 test.scala 的目录中,我启动 sbt 并运行程序一次以确保一切正常。
在另一个终端(相同的目录)中,我启动 jdb:
然后在 sbt 中输入 'run',程序就不停的完成了。但是,jdb 似乎对能够设置断点的代码了解得足够多。当我再次运行,但用“挂起”中断 jdb 中的所有线程时,我可以查看“线程”的输出:
选择运行测试的线程:
因此,jdb 似乎知道我的代码中的类和方法名称以及行号,但不会在断点处停止。如果我在不存在的函数上设置断点,我会得到:
表明它确实理解 test.foo 处的断点?对于 test.foo 或 test$.foo,我是否使用 stop in、on 或 at 都没有关系。从谷歌搜索其他问题看来,我的方法名称很可能是错误的,但我不知道那会是什么。
我希望能够在我现有的开发设置中添加一些简单的调试,而无需切换到 Eclipse 或 IntelliJ。我做错了什么或根本没有做错,或者没有简单的方法可以完成这项工作?
版本信息:
- Linux:Ubuntu 12.04.4 LTS(精确)
- jdb:1.6(Java SE 版本 1.6.0_31)
- sbt:0.13.5
- 斯卡拉:2.10.4
- java版本“1.6.0_31”
- OpenJDK 运行环境 (IcedTea6 1.13.3) (6b31-1.13.3-1ubuntu1~0.12.04.2)
- OpenJDK 64 位服务器 VM(内部版本 23.25-b01,混合模式)