Tag: 调试

我该如何调试Hadoop map reduce

我试图建立一个地图减少工作。 它运行完成但最后会出现奇怪的数据。 当我尝试使用system.out.println(“调试数据”)进行调试时,它不会显示在屏幕上。 使用java API生成外部日志文件,尝试使用log.severe(“日志数据”)或使用log4j logger方法log.info(日志数据)打印到屏幕上无法正常工作/ 在地图缩减作业中出现exception时,我看到调试消息的唯一时间是无效的。 如何修复,以便我可以在文件或屏幕上看到我的调试消息?

JavaFX 2调试css

在使用JavaFX时,我正在努力处理一些CSS样式。 我想知道是否有任何方法来调试CSS? 像firebug或chrome中的内置工具一样,当你按下一个css样式适用于它的元素时会显示你。

在NetBeans 7.1中调试Java代码时如何更改变量的值?

我设置了一个断点,允许我在对象的字段中查看值。 我想更改值然后继续执行,但后来我尝试编辑变量视图中的值,值字段显示为灰色。 调试时有没有办法改变变量值?

Java似乎挂了

我一直在自定义应用程序中使用Java Service包装器已经有一段时间了,它一直运行良好。 由于在最近几天将我们的应用程序更新到新版本,JVM开始挂起,然后包装器在日志中打印出来:JVM出现挂起:超时等待来自JVM的信号。 然后它会自动终止JVM并再次启动应用程序。 这在大约10个小时的运行后发生,这使得调试变得更加困难。 当然,我将查看我们所做的更改,但没有做出重大更改,我怀疑是会导致此类问题。 我在哪里可以尝试找出发生了什么? 来自应用程序的调试消息不表示任何有趣的内容。 如果JVM刚崩溃,它通常会创建一个转储,这可以帮助调试它,但它是挂起的,所以它不会创建转储。 如果我没有自动重启服务,那么在重新启动它之前我可以做些什么来从JVM中获取一些有用的信息? 在我看来,JVM不应该挂起典型的编程错误。 你之前遇到什么会导致JVM挂起?

如何在java程序中禁用堆栈跟踪生成?

我想禁用在抛出exception时生成的堆栈跟踪。 我用过, Runtime.getRuntime().traceInstructions(false); Runtime.getRuntime().traceMethodCalls(false); 但我仍然可以看到跟踪生成。 你怎么能这样做? 此外,我需要检测是否有人正在调试我的课程。 我想禁用所有exception跟踪。 我不能使用混淆,因为我的产品是一个将用于开发的SDK。 我还提供了一个Runtime,当人们想要部署使用我的SDK构建的应用程序时使用它。 我的要求是任何使用我的Runtime jar的人都不应该能够调试编写的代码……或者至少我会通过避免从我的运行时jar生成堆栈跟踪来使调试变得困难。 我找到的一种方法是所有来自我的运行时jar的exception,我只是捕获它们并在exception对象上设置一个空的StackTraceElement数组并重新抛出它… 为何如此要求? 假设你使用我的SDK开发一个应用程序。(SDK jar不能与你的应用程序捆绑在一起..我已经限制了它,那就是最终:) !!)现在要在你的客户端机器上运行你的应用程序,你(或客户端)需要安装客户端计算机上的运行时并运行您的应用程序。 现在,如果您的客户使用我的运行时jar子开始开发自己的应用程序,该怎么办 这对我的生意构成威胁….这就是为什么这个可怕的要求。 为什么禁用堆栈跟踪? 通过禁用堆栈跟踪生成或方法调用跟踪生成我想用我的Runtime jar开发代码很困难,这就是为什么我以这种方式开始我的问题…建议一些其他解决方案来实现这样的要求……

Logback扫描无法正常工作

我无法使用logback的自动扫描function工作。 它似乎没有发现变化。 我已经将section =“true”添加到section并读取它的输出,一切似乎都很好。 它清楚地说明了每30秒监视logback.xml文件的变化。 我不知道为什么没有改变变化。 只是寻找一些指导我如何进一步解决这个问题。 谢谢。 我应该提一下,logback正好记录到文件,只是没有获取对logback配置文件的更改。 logback.xml文件 ${LOGS_PATH}/scheduledTasks.log ${LOGS_PATH}/scheduledTasks.%i.log.zip 1 25 5MB %d{MMM/dd/yyyy HH:mm:ss} %-5level %logger{50} – %msg%n Web应用程序启动时输出到Tomcat日志: |-INFO in ch.qos.logback.classic.LoggerContext[default] – Could NOT find resource [logback.groovy] |-INFO in ch.qos.logback.classic.LoggerContext[default] – Could NOT find resource [logback-test.xml] |-INFO in ch.qos.logback.classic.LoggerContext[default] – Found resource [logback.xml] at [file:/C:/Users/*****/Desktop/css_dev/ProjectQ/build/web/WEB-INF/classes/logback.xml] |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction – Setting ReconfigureOnChangeFilter […]

在Eclipse中进行大量迭代后的循环中的断点

假设我有以下代码。 在调试时,我希望Eclipse在完成100万次迭代后停止。 这个怎么做? 我不能手动做100万次。 for(int i = 0; i < 10000000; i++) { //some code }

IntelliJ IDEA:ClassNotFoundException如果运行Debug,执行/运行确实有效

我在Eclipse中启动了一个Java Maven项目,在几天内完成了工作,然后在IntelliJ IDEA中导入它,再次使用它几天。 IDEA和via shell中的正常运行/执行确实有效,但不是Debug。 当我单击调试的Bug图标时,它会打开URLClassLoader.java文件并指向Line“抛出新的ClassNotFoundException(name)”并暂停Debug,如果我单击Resume Debug,它会显示几个不属于我的类项目。 我可以无限地单击Resume Button,它会在连续循环中反复显示相同的类,ClassNotFoundException并且不会调试我的源代码。 如果我单击Build – > Rebuild Project,它会在Debug图标中显示“Hot Swap failed myClassname:schema changed not implemented; myClassname:VM不支持的操作” 在变量下的调试窗口中,它显示:“框架不可用” IntelliJ IDEA中的这个项目的调试以前工作过,现在有什么问题吗?

JUnit 4和Suspend-on-Exception

当我的代码中抛出未捕获的exception时,我习惯让调试器停止在throw语句中,这样我就可以检查局部变量以及抛出exception时所涉及的所有对象的成员。 使用IntelliJ Idea,可以通过转到“运行” ,“ 查看断点” ,选择“ exception断点”选项卡,选中“ 任何exception ”并确保未选中“ 捕获exception”复选框,同时选中“ 未捕获exception”复选框来完成此操作。 使用Eclipse和Visual Studio (对于C#),它是不同的,但是沿着相同的路线。 使调试器以这种方式运行的能力非常有用; 实际上非常有用,我相应地构建了我的程序的主循环:在发布版本中,主循环当然嵌入在try-catch-all中; 但是在调试版本中,主循环中没有try-catch块,因此在程序中任何地方都没有捕获的任何exception都将保持未被捕获状态,因此调试器将在抛出它们时暂停我的程序。 但是,在使用JUnit测试我的Java类时,我遇到了一个问题:调试器不会停止任何exception。 相反,会发生的事情是,不仅预期的,而且意外的exception也会被自动捕获,并且我会获得一个事后exception堆栈跟踪以尝试理解。 那不是很酷。 我曾经认为这种情况正在发生,因为JUnit使用java.lang.reflect.Method.invoke() ,它捕获所有exception并将它们转换为TargetInvocationExceptions ,但后来我编写了自己的自定义JUnit运行器,它知道我的测试类个人直接调用其方法而不使用Method.invoke() ,问题仍然存在。 这意味着问题出现在核心JUnit中。 那么,其他人是否也有同样的问题? 有没有人知道一个解决方案,以便我们可以让调试器在使用JUnit进行测试时暂停程序执行意外exception? 相关(未回答)问题: 在Eclipse Junit测试运行器中暂停未捕获的运行时exception 相关(未答复)的问题: 如何在jUnit测试用例中进入调试器? 相关(部分回答)问题: 使用jUnit打破Eclipse中的exception (接受的答案说“如果你在jUnit中调试单个方法,断点就会开始工作。如果在jUnit中调试整个类或包,调试器不会不行。“)

如何在调试模式下编译? (netbeans,java,maven)

我正面临项目中的注释/持久性错误,并且持久性库会抛出一个 NullPointerException when trying to resolve the entities (org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.discoverMappedSuperclassesAndInheritanceParents(EntityAccessor.java:224)). 如何调试这些错误以找到有关错误原因的更多信息? 在EntityAccessor设置断点并编译以进行调试不起作用,编译器本身似乎没有在调试模式下运行。 我正在使用Netbeans / Java / Maven。