草庐IT

Java jdb远程调试命令行工具

有人用过吗?如果是这样,值得吗? 最佳答案 我昨天才第一次使用jdb,对结果非常满意。你看,我在我的笔记本电脑上使用Eclipse编程,然后部署到VM以确保整个shebang仍然有效。偶尔,我将不得不处理一些作为命令行独立执行的东西。这些东西有时需要调试。这一直是个问题,因为我不想在VM上安装Eclipse的麻烦(它已经够慢了!),但我不知道有什么简单的方法可以让它连接在我的命令行运行类完成运行之前。jdb来救援!它是一种享受-小而实用,几乎到了它裸露的地步......这迫使你更多地运用你的思想而不是你应用工具(就像我说的here)

java - 跨大陆远程Java调试

当将IDE(IntelliJ或Eclipse)中的调试器附加到在另一个大陆(伦敦到纽约)运行的JVM时,延迟是无法忍受的。我已经等待超过10分钟让IntelliJ填充我的堆栈框架并填写对象,然后在遇到断点时放弃。(注意:我在执行此操作时从未见过完全填充调试状态!)这使得无法使用IDE进行远程调试!我知道jdb工具没有遇到任何此类滞后问题。我想是因为它更适合从VM检索特定数据,而不是填充每个堆栈框架和所有可访问的值。有人知道是否存在中间地带吗?我发现jdb使用起来很麻烦——我希望看到一个没有遇到IDE滞后问题的UI(构建在jdb之上)。有谁知道这样的应用程序是否存在?有谁知道调试在数千英

java - 检查jdb中某个方法的返回值

假设在jdb中我在代码中的以下位置:return22;-->}如何转储将要返回的对象(或原语)的值?在返回之前必须将返回值存储在局部变量中似乎很痛苦,这样我就可以看到将要返回的内容。实际上,我想在jdb中执行gdb链接中描述的操作:HowtoinspectthereturnvalueofafunctioninGDB? 最佳答案 嗯,VM是面向堆栈的,因此没有什么比那些寄存器更值得读取的了。在方法中,您可以执行tracemethodexit并在方法退出时显示返回值。这不完全是您所要求的,因为您只能在方法退出后看到该值。您的另一个选择是

Java JDB : ERROR: transport error 202: gethostbyname: unknown host

我有一条与此post非常相似的错误消息;但是,同一篇文章中的解决方案对我不起作用。不幸的是,编辑主机文件我将127.0.0.1my-host-name添加到我的主机文件(每个链接线程中的解决方案)对我没有任何帮助。在JDB中“运行”后,我收到以下错误消息:Initializingjdb...runrunQuadtreeBitmapVMstartexception:VMinitializationfailedfor:/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/java-Xdebug-Xrunjdwp:

java - Eclipse 如何调试应用程序服务器中的代码?

当我在Debug模式下从Eclipse中运行服务器时,Eclipse和我的应用程序服务器(JBoss)之间正在进行什么通信?这是如何工作的? 最佳答案 当您以Debug模式启动服务器时,它会监听指定的TCP端口。Eclipse连接到该端口,它们使用Java调试有线协议(protocol)(JDWP)进行通信。在此处阅读详细信息:http://java.sun.com/j2se/1.5.0/docs/guide/jpda/ 关于java-Eclipse如何调试应用程序服务器中的代码?,我们

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

我正在学习JDB并遇到了一些悖论。启动JDB(使用“jdbClassName”)后,大多数教程会告诉我输入>methodsClassName查看可用方法列表,以便我可以设置断点。如果我这样做,JDB回复Command'methods'isnotvaliduntiltheVMisstartedwiththe'run'command当然,如果我在设置任何断点之前说“运行”,它会直接运行;不是很有帮助。我唯一可以得出的结论是,jdb希望您盲目设置断点,但这似乎是一个严重的疏忽,我坚持认为我只是缺少一个命令。非常感谢!!乔伊斯 最佳答案 请

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

我有一个编译了源代码的可执行jar,我想使用jdb调试它(不幸的是,在这个环境中没有其他可用的调试器)。我可以调试它jdb-classpath"${JAR_FILE}:${CLASS_PATH}"${MAIN_CLASS}${ARGS}如何让jdb使用内置在jar文件中的源代码?注释:Java6、AIX、ksh 最佳答案 如果jdb忽略sourcepath的*.jar和*.zip条目,也许您可​​以创建一个批处理文件以将源从目标jar扩展到临时目录并指向sourcepath到那个。像这样MYDEBUGDIR=/temp/source

java - jdb条件断点

我使用JDB远程调试我的应用程序,只有JDB,没有IDE,有没有办法在jdb中设置条件断点?例如:停止在MyClass:80当mystr.equals("abc") 最佳答案 Jdb不支持条件断点,但作为最后的手段,您可以尝试使用gcj编译您的程序并使用gdb进行调试,它支持条件断点。根据项目的复杂性,这可能是也可能不是可行的选择。您可能还可以使用其他鲜为人知的命令行调试器。 关于java-jdb条件断点,我们在StackOverflow上找到一个类似的问题:

java - 如何将控制台输入传递给正在运行的 Java 程序而不是传递给 jdb?

使用Java的jdb调试我的代码。我卡在我的程序需要命令行输入的地方,但jdb将其作为jdb命令拦截。如何告诉jdb将文本传递给正在运行的程序?版本:C:\DocumentsandSettings\*snip*>java-showversionjavaversion"1.6.0_17"Java(TM)SERuntimeEnvironment(build1.6.0_17-b04)JavaHotSpot(TM)ClientVM(build14.3-b01,mixedmode,sharing)编译:javac-gLZWDecompress.javajdb.ini:stopinLZWDecom

debugging - 如何将调试器附加到远程 Hadoop 实例

我不是在寻找依赖于debugging的所谓“println”解决方案.我的意思是将一个真正的调试器附加到一个正在运行的Hadoop实例,并从不同的机器调试它。这可能吗?如何?jdb? 最佳答案 在LINK上很好地给出了要调试任务跟踪器,请执行以下步骤。编辑conf/hadoop-env.sh使其具有以下内容exportHADOOP_TASKTRACKER_OPTS="-Xdebug-Xrunjdwp:transport=dt_socket,address=5000,server=y,suspend=n"启动Hadoop(bin/st