问题标签 [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.

0 投票
3 回答
2318 浏览

java - jdb条件断点

我使用 JDB 远程调试我的应用程序,只有 JDB,没有 IDE,在 jdb 中有没有办法设置条件断点?

例如:当 mystr.equals("abc") 时停在 MyClass:80

0 投票
1 回答
447 浏览

eclipse - 在 Eclipse 之外的 Eclipse 中调用调试会话

如何在 Eclipse 中运行调试会话但在 Eclipse 外部调用它(而不是执行 Run->Debug 我想调用一些将在 Eclipse 中启动调试的进程(可能是 jdb?))。那可能吗?

0 投票
3 回答
2689 浏览

android - Android 使用 waitForDebugger 混淆 jdb

我想使用命令行在我的设备(Nexus One - 不是模拟器)上调试我的 Android 应用程序。

我对如何使用 jdb 和android.os.Debug.waitForDebugger.

假设我将以下代码放在我的主要活动中onCreate

使用ddms我可以看到我的应用程序在启动时正在等待调试器(红色错误图标)。

但是,我不明白如何在waitForDebugger()调用后设置断点以便我可以开始单步执行。

显然,只是附加jdb将立即继续运行应用程序而不会停止。

例如

有没有办法在运行之前预设断点jdb或开始jdb设置断点然后附加?

0 投票
3 回答
3873 浏览

java - JDB——如何在运行程序之前获取方法列表?

我正在学习 JDB 并遇到了一个悖论。启动 JDB(使用“jdb ClassName”)后,大多数教程都会告诉我输入

> 方法类名

查看可用方法的列表,以便我可以设置断点。如果我这样做,JDB 会回复

在使用“run”命令启动 VM 之前,命令“methods”无效

当然,如果我在设置任何断点之前说“运行”,它会直接运行;不是很有帮助。我唯一能得出的结论是 jdb 希望你设置你的断点盲目,但这似乎是一个严重的疏忽,我坚持认为我只是错过了一个命令。

非常感谢!!乔伊斯

0 投票
4 回答
8241 浏览

android - Android开发:命令行中的ddms看不到设备

================================

*已解决*:请参阅下面的答案

我不想使用 Eclipse。

从命令行:

模拟器正在运行。adb 服务器正在运行。“adb devices”列表正确,我可以在输出中的 avd 上看到我的实例。

但是,当我从命令行手动启动 DDMS 时,它只是一直在尝试连接。我找不到连接配置问题。

欢迎任何建议(“使用 Eclipse”除外)!

(是的,它在 eclipse 中工作,ddms 显示线程等)

系统:Debian 挤压

更新:我运行 update-java-alternatives 以确保为 "Java(TM) SE Runtime Environment (build 1.6.0_20-b02)" 正确设置了 java。对于经验丰富的 Debian 用户来说,我的 Java 现在变得更糟了,这并不意外……当我从命令行运行 ddms 时,我得到:--

0 投票
1 回答
834 浏览

android - 带有android应用程序的jdb - 无法打开源文件

我希望使用 jdb 通过 ddms go 在模拟器中调试 android 应用程序。

我已经成功地在我的班级'onCreate 中设置了一个断点,并且调试器(jdb)适时中断。但是,如果我尝试“列出”它说它找不到源文件的代码。我从emacs这样启动jdb:-

我知道 myact.java 就在那个目录中。我是 jdb 新手,但 sourcepath 不是处理这个问题的方法吗?如果不是,我该怎么办?

0 投票
2 回答
4370 浏览

java - 在 java jdb 调试器中打印变量

如果类是在没有调试标志的情况下编译的,是否可以查看作为函数参数传递的变量?我成功地设置了断点,但之后我不知道如何查看参数值。我没有好的源代码,soft 是晦涩难懂的。像这样的函数:void a(int var1, boolean var2) - 所以,我想要 print var1 & print var2。

0 投票
4 回答
10996 浏览

java - 使用带有源的 jar 作为 jdb 的源?

我有一个编译了源代码的可执行 jar,我想使用 jdb 对其进行调试(不幸的是,此环境中没有其他可用的调试器)。

我可以调试它

如何让 jdb 使用 jar 文件中内置的源代码?

注释: Java 6、AIX、ksh

0 投票
2 回答
1511 浏览

java - Groovy/Grails 代码的 JDB 调试

我正在尝试调试我继承的一些(相当无礼的)Grails 代码中的一些问题。我是 Groovy 和 Grails 的相对菜鸟,虽然我是 Java 的老家伙。

这就是问题所在:我让这个东西在 jconsole 和 jdb 挂钩中运行,但是使用调试器很困难,因为很多代码都在闭包中。所以,例如,

作为控制器上单个方法的实现。

作为一个闭包,名称(当调试器看到它​​时)是 TheController.closure527(或类似的名称),而且很难找到。

那么,如何找到从块名到闭包的映射呢?

更一般地说,有没有关于做这种事情的好教程?

理想情况下,答案不会涉及转换到 IntelliJ,就好像上帝让我们使用这样的 IDE,她不会给我们 EMACS。

0 投票
4 回答
8595 浏览

debugging - 使用“jdb -attach”(或 jswat)调试 android 应用程序

我在模拟器上使用带有 android 应用程序的独立 java 调试器时遇到了麻烦。显然,可以按照以下步骤使用任何具有远程功能的 Java 调试器,例如 jdb(或 jswat)(正如我在此处和那里阅读后所理解的那样):

1)打开模拟器,在模拟器上安装你的应用(adb install)

2)打开dalvik服务器(ddms)

3)在模拟器上,运行“DevTools”应用程序->“开发设置”->选择要调试的应用程序,启用“等待调试器”标志

4)再次在模拟器中,运行您的应用程序;它将阻塞,等待调试器附加,dalvik 将显示一个被“红色错误”标记的新进程

5)在dalvik上,选择红色标记的进程;它的调试端口因此被转发到 localhost:8700

6) 将调试器挂接到 localhost:8700。使用 jdb 你必须运行“jdb -attach 8700”

启动调试器后,模拟器上的应用程序就会解除阻塞。因此,该应用程序似乎已正确检测到调试器,因此可以免费运行。

然而,关键是它“自由运行”,也就是说,它不会等待调试器发出“运行”命令。所以我没有机会设置任何断点。

根据1的提示,我尝试在我的应用程序的开头放置等待循环,希望我有时间设置断点。当我尝试设置断点时,jdb 说“延迟断点 XXX.YYY。它将在加载类后设置。”,因为应用程序尚未运行。但是,如果我随后发出“运行”命令,答案是“没有任何暂停。”,因为应用程序已经在运行(确实如此)。

使用 jswat,您不会看到所有这些消息,但最终结果是相同的 :-(

不用说,“jdb -attach”适用于在 localhost 上运行的非 Android Java 应用程序。

任何提示(“请使用 eclipse”除外)?

我只是在任何地方遗漏了一个愚蠢的细节吗?

该应用程序是一个HelloWorld,构建命令是“ant debug”。

先感谢您。