问题标签 [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.
java - jdb条件断点
我使用 JDB 远程调试我的应用程序,只有 JDB,没有 IDE,在 jdb 中有没有办法设置条件断点?
例如:当 mystr.equals("abc") 时停在 MyClass:80
eclipse - 在 Eclipse 之外的 Eclipse 中调用调试会话
如何在 Eclipse 中运行调试会话但在 Eclipse 外部调用它(而不是执行 Run->Debug 我想调用一些将在 Eclipse 中启动调试的进程(可能是 jdb?))。那可能吗?
android - Android 使用 waitForDebugger 混淆 jdb
我想使用命令行在我的设备(Nexus One - 不是模拟器)上调试我的 Android 应用程序。
我对如何使用 jdb 和android.os.Debug.waitForDebugger
.
假设我将以下代码放在我的主要活动中onCreate
:
使用ddms
我可以看到我的应用程序在启动时正在等待调试器(红色错误图标)。
但是,我不明白如何在waitForDebugger()
调用后设置断点以便我可以开始单步执行。
显然,只是附加jdb
将立即继续运行应用程序而不会停止。
例如
有没有办法在运行之前预设断点jdb
或开始jdb
设置断点然后附加?
java - JDB——如何在运行程序之前获取方法列表?
我正在学习 JDB 并遇到了一个悖论。启动 JDB(使用“jdb ClassName”)后,大多数教程都会告诉我输入
> 方法类名
查看可用方法的列表,以便我可以设置断点。如果我这样做,JDB 会回复
在使用“run”命令启动 VM 之前,命令“methods”无效
当然,如果我在设置任何断点之前说“运行”,它会直接运行;不是很有帮助。我唯一能得出的结论是 jdb 希望你设置你的断点盲目,但这似乎是一个严重的疏忽,我坚持认为我只是错过了一个命令。
非常感谢!!乔伊斯
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 时,我得到:--
android - 带有android应用程序的jdb - 无法打开源文件
我希望使用 jdb 通过 ddms go 在模拟器中调试 android 应用程序。
我已经成功地在我的班级'onCreate 中设置了一个断点,并且调试器(jdb)适时中断。但是,如果我尝试“列出”它说它找不到源文件的代码。我从emacs这样启动jdb:-
我知道 myact.java 就在那个目录中。我是 jdb 新手,但 sourcepath 不是处理这个问题的方法吗?如果不是,我该怎么办?
java - 在 java jdb 调试器中打印变量
如果类是在没有调试标志的情况下编译的,是否可以查看作为函数参数传递的变量?我成功地设置了断点,但之后我不知道如何查看参数值。我没有好的源代码,soft 是晦涩难懂的。像这样的函数:void a(int var1, boolean var2) - 所以,我想要 print var1 & print var2。
java - 使用带有源的 jar 作为 jdb 的源?
我有一个编译了源代码的可执行 jar,我想使用 jdb 对其进行调试(不幸的是,此环境中没有其他可用的调试器)。
我可以调试它
如何让 jdb 使用 jar 文件中内置的源代码?
注释: Java 6、AIX、ksh
java - Groovy/Grails 代码的 JDB 调试
我正在尝试调试我继承的一些(相当无礼的)Grails 代码中的一些问题。我是 Groovy 和 Grails 的相对菜鸟,虽然我是 Java 的老家伙。
这就是问题所在:我让这个东西在 jconsole 和 jdb 挂钩中运行,但是使用调试器很困难,因为很多代码都在闭包中。所以,例如,
作为控制器上单个方法的实现。
作为一个闭包,名称(当调试器看到它时)是 TheController.closure527(或类似的名称),而且很难找到。
那么,如何找到从块名到闭包的映射呢?
更一般地说,有没有关于做这种事情的好教程?
理想情况下,答案不会涉及转换到 IntelliJ,就好像上帝让我们使用这样的 IDE,她不会给我们 EMACS。
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”。
先感谢您。