Tag: 调试

Eclipse Mac OS X调试错误:“本机方法中的致命错误:JDWP没有传输初始化,jvmtiError = AGENT_ERROR_TRANSPORT_INIT(197)”

ERROR: transport error 202: gethostbyname: unknown host ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750] FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) 操作系统:Mac OS X 10.10.2 MacBook Pro和Retina Display java版“1.8.0_25”Java(TM)SE运行时环境(版本1.8.0_25-b17)Java HotSpot(TM)64位服务器VM(版本25.25-b02) , 混合模式) 我不确定为什么调试失败并导致这些错误。 我没有更改/更新任何我记得的内容。 任何建议? 我意识到这个问题已经被提出,但Mac OS X并没有得到答案,我的答案也不清楚。 我该怎么办?

调试递归算法

我的问题是,是否有一些智能的方法来调试复杂的递归算法。 假设我们有一个复杂的(不是一个简单的情况,当递归计数器在每个’嵌套迭代’中减少’)。 我的意思是在循环可能时递归遍历图形。 我需要检查一下我是否没有得到无限循环。 只使用调试器来做这件事并没有给出确定的答案(因为我不确定算法是在无限循环中还是只是处理它)。 没有具体的例子,很难解释它。 但我需要的是…… ‘检查无限循环是否发生在让我们说复杂的递归算法’。

调试和计算断点命中

有时当我检查我没写的代码时,我会在调试模式下启动eclipse并使用数字来理解程序。 例如,如果它们是从数据库中检索的n个项目,那么知道服务中有n个已处理项目可能会很有趣。 当使用循环时,事情会变得更复杂:如果我们处于“while”循环中,则不会定义执行次数,如果有替代方案,则执行流程可能会发生很大变化。 为此,我有时会在代码的一部分中设置断点并计算到达它的次数。 当然,它不是很方便,我想知道是否有办法计算断点命中数。 我知道Eclipse可以在固定数量的命中后暂停执行,但我只是希望Eclipse在正常的执行流程中对它们进行计数。 我很高兴听到你的意见。 谢谢!

无法在日食中放置断点

我使用JDK 1.6.0_18(32位)在windows vista home premium 64位上使用eclipse europa(3.5)。 通常情况下,我能够把断点放得很好; 但是,对于不属于项目的特定类(此类在.JAR文件中(.JAR文件是项目的一部分)),虽然我已将源目录附加到此.JAR文件,但我无法在这个类中放置一个断点。 如果我双击断点窗格(左边框),我会注意到放置了一个类断点。 我想知道是否没有调试信息; 但是,发现这个特定类是使用debug =“true”和debuglevel =“lines,vars,source”使用ant / javac任务编译的。 我甚至在这个类上运行jad以确认它确实包含调试信息。 那么,为什么eclipse阻止我放置一个断点? 编辑:只是这样每个人都理解上下文,这是一个在tomcat 6.0下运行的webapp。 我在外面启动tomcat后从eclipse远程调试应用程序。 该应用程序工作得很好。 我试图理解上面这个类的行为,因为eclipse不让我设置BP,所以我无法做到这一点。 PS:我在这里看到一些线索谈论BP没有被击中但在我的情况下,我无法放置BP! PPS:在尝试1.6.0_18之前我尝试过JDK 1.6.0_16。 谢谢你的任何指示。

在未捕获的exception上附加jdb

所以,我正在开始一个Java程序,如下所示 java -agentlib:jdwp=transport=dt_socket,address=8000, server=y,suspend=n MyClass 然后我手动附加调试器,如下所示 jdb -attach 8000 我想知道是否有任何方式让我设置jdb,以便在未捕获的exception情况下它自动附加到正在运行的进程(仅)? 原因是我希望避免调试器的开销直到出现未捕获的exception。 但我现在面临的问题是,如果没有附加调试器,那么一旦出现未捕获的exception,JVM就会中止。 编辑: 从Oracle 文档来看,似乎下面的命令可以满足我的需求,但对于Windows机器而言。 java -agentlib:jdwp=transport=dt_shmem,server=y,onuncaught=y,launch=d:\bin\debugstub.exe MyClass 谁知道linux等价? 我试过下面的命令。 java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,onuncaught=y,suspend=n,launch=jdb MyClass 调试器似乎连接但它立即引发IOError。 Initializing jdb … java.io.IOException: Input/output error at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:272) at java.io.BufferedInputStream.read1(BufferedInputStream.java:273) at java.io.BufferedInputStream.read(BufferedInputStream.java:334) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:154) at java.io.BufferedReader.readLine(BufferedReader.java:317) at java.io.BufferedReader.readLine(BufferedReader.java:382) at com.sun.tools.example.debug.tty.TTY.(TTY.java:751) […]

如何将NetBeans配置为仅执行我编写的Java代码

我错过了什么吗? 我很高兴所有的代码都显示了generics集合的工作方式等等。但是,当我想简单地遍历我的代码时,我总是发现自己更深入地研究Java自己的库代码而不是我关心的。 是否可以在步进代码时简单地禁用它 – 我想将所有这些东西视为黑盒子,代码步进只是为了我写的东西。 你知道吗,现在我已经掌握了这个function,是否有可能以这种方式包装我自己的代码,以便我可以只选择我最感兴趣的部分? 如果我不能轻易地在netbeans中,是否有可能在日食? 谢谢

查找Java程序的实际运行时调用树

假设我有一个包含数百种方法的大程序。 并且根据输入的性质,程序流程正在发生变化。 我想我想改变原始流程。 找到调用层次结构/引用并理解流程是一件很麻烦的事。 我在Eclipse中有这个解决方案吗? 还是一个插件? 举个例子,我只需要按时间顺序记录方法名称。 然后我不需要担心与我的“给定输入”无关的方法 更新:在eclipse中使用调试模式或添加打印消息是不可行的。 该计划太棒了。 🙂

即使java进程正在运行,jps也不返回任何输出

我正在尝试在Solaris机器上调试java进程的一些问题,但是运行jps不会返回任何输出。 并且jstack给出错误“权限被拒绝”。 该盒子是3个相同服务器集群的一部分,jps和jstack在其他2台服务器上运行良好。 我发现以下论坛post来自有同样问题但没有答案的人: http : //forums.sun.com/thread.jspa?threadID = 5422237 澄清运行bps和grep for java给出了所有java程序正确,但jps没有给出任何东西(用’program’和’client’匿名来保护有罪): program @ clientdelivery2 : ~/ -> bps auxww|grep java program 3427 5.5 54.067742726649544 ? S Sep 25 1039:47 /usr/jdk/instances/jdk1.6.0_16/bin/amd64/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/app/client/program/tomcat/conf/logging.properties -Xmx6144m -XX:PermSize=128m -XX:MaxPermSize=512m -Djava.endorsed.dirs=/app/client/program/tomcat/endorsed -classpath :/app/client/program/tomcat/bin/bootstrap.jar -Dcatalina.base=/app/client/program/tomcat -Dcatalina.home=/app/client/program/tomcat -Djava.io.tmpdir=/app/client/program/tomcat/temp org.apache.catalina.startup.Bootstrap start program 29915 0.1 11.915252441467896 ? S 14:55:28 3:59 /usr/jdk/instances/jdk1.6.0_16/bin/amd64/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/app/clientclone/program/tomcat/conf/logging.properties […]

在eclipse中启用和禁用所有断点

有没有办法在Eclipse中启用和禁用所有断点……? 我不想删除它们只是禁用它们并在满足某些条件后启用它们。 提前致谢

用于调试的工具在java应用程序中挂起

我有一个java应用程序,有一半时间只是挂起,另一半JVM崩溃。 有没有一个工具我可以用来看看是什么让它挂起和/或崩溃? 我正在使用CentOS 5.6