草庐IT

Debugging

全部标签

java - 为什么 Eclipse 的表达式 View 在某些类上会失败?

对于一个研究项目,我正在使用Eclipse在OpenJDK源上进行开发。出于调试目的,集成调试器的“表达式”和“显示”View非常有用。当单步执行javac的代码时编译器工具,表达式View在某些类上失败。然后,即使是最简单的表达式也会得到。在他们的值(value)栏中。详细的错误信息是:Evaluationsmustcontaineitheranexpressionorablockofwell-formedstatements我很确定,我输入了有效的表达式,因为只需切换到调用方法(高一个堆栈帧)即可使View正常工作。我上传了两张截图,其中两张让问题更清楚:非工薪阶层JavacPar

java - 有没有办法从 Visual Studio Code 调试 Tomcat Java 应用程序

我是Java的新手,但需要对Java代码进行一些更改。为此,我更喜欢使用VisualStudioCode。Java代码使用Maven构建为.WAR文件并部署到Tomcat。有什么方法可以直接从VisualStudioCode调试这个应用程序吗? 最佳答案 VisualStudioCode有很多工具可以在市场上执行此操作。对于Tomcat,您可以使用:https://marketplace.visualstudio.com/items?itemName=adashen.vscode-tomcat你可以做所有这些事情:从Tomcat安装

java - 如果语句会抛出异常,则停止的断点

从Eclipse切换我想知道是否有可能在IDEA中创建一个断点,该断点仅在其行上的语句抛出异常时才停止。为了在Eclipse中实现这一点,我将语句复制到断点条件中并添加;返回假;。如果在评估断点条件时抛出异常,Eclipse就会停止。然而,在IDEA中,条件必须是一个表达式。当我尝试添加分号时,IDEA总是提示表达式无效。我怎样才能实现与我在Eclipse中的行为类似的行为,或者你们如何解决这个问题? 最佳答案 我通过用try/catch子句包围语句并将断点放在catchblock中来处理这种情况。不过,它需要重新编译您的代码。

java - 使用带有 Java 8 流的交互式调试器的问题

我喜欢Java8流。它们直观、强大且优雅。但在我看来,它们确实有一个主要缺点:它们使调试变得更加困难(除非您可以通过调试lambda表达式来解决问题,答案是here)。考虑以下两个等效片段:intsmallElementBitCount=intList.stream().filter(n->n和intsmallElementBitCount=0;for(intn:intList){if(n我发现第一个更清晰、更简洁。但是请考虑结果不是您所期望的情况。你做什么工作?在传统的迭代风格中,您在totalBitCount+=Integer.bitCount(n);上放置了一个断点行并遍历列表中

java - 如果正在调试代码,您可以在 Java 中检测到吗?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Howtofindoutif“debugmode”isenabled来自C#,我不敢相信Java没有办法只在程序调试时执行代码。不知何故,Log4J似乎能够做到这一点。有谁知道这有可能吗?我在想这样的事情:#ifDEBUGexecutedCode();#endif或者像这样:if(Java.isDebugging())executeCode();想法?编辑:感谢MattBall,this中的代码可能的重复作品:publicstaticbooleandebugging=java.lang.management.

java - IntelliJ IDEA 2017.1 不会在断点处停止

我有一个旧的Gradle项目,我最近使用新的IDEA2017打开了它,我刚刚注意到它不会再在断点处停止(这些是Activity的,但不是“已验证”-它们上面没有复选标记。代码在本地运行(没有任何选项的gradle运行/调试配置),bootRun作为gradle任务。我尝试了无效缓存/重新启动但没有成功。我也试过在IDEA中重新导入项目。不久前,我在升级到Spring1.4.5后遇到了同样的问题(如果我没记错的话)。我不知道为什么,所以我降级回1.4.2,一切正常。然而,这次我运行的是Spring1.2.4,如果不更改一些代码我就无法升级到更新的版本(我还不想这样)

java - 为什么在eclipse中调试jdk库,看不到局部变量值?

问题是在调试java库类时,例如HashSet函数我看不到局部变量。在variables选项卡上,我只能看到函数参数和this的字段。当我试图将局部变量添加到watch时,eclipse说:“评估期间出错”。所以我的问题是为什么会发生这种情况?我如何才能看到这些局部变量值? 最佳答案 长话短说,JDK发行版没有使用调试信息进行编译。检查这些问题的答案:HowtodebugJDKsourceHowcanIcheckondebugsymbolstatuswithEclipse? 关于java

java - 为什么我无法在 TestNG 中调试我的代码

我正在使用TestNG和Java运行自动化测试。这是我的部分代码:privatevoidtestConnection(StringURL1)throwsIOException{try{URLurl=newURL(URL1);HttpURLConnectionurlConn=(HttpURLConnection)url.openConnection();urlConn.connect();assertEquals(HttpURLConnection.HTTP_OK,urlConn.getResponseCode());}catch(IOExceptione){ConsoleLogger.

java - 如何调试/记录/跟踪小程序加载问题?

最近,我们的两个客户报告了我们的小程序存在的问题。查看java插件控制台,它充满了ClassNotFoundException,所以我们的代码都没有执行。我已经能够使用磁盘上可用空间为0的虚拟pc镜像重现堆栈跟踪,但是当我恢复一些磁盘空间时问题消失了,并且用户告诉我他们的磁盘未满;他们能够创建新文件。我们的小程序需要java6,问题出现在jre的更新1、10和14中。我们也试过不同的浏览器(IE和Firefox),清除浏览器和java缓存,...我如何调试或跟踪jvm正在加载我们的小程序?我想问题出在Windows上的一些安全指令上,所以我正在使用Sysinternal的进程监视器来记

java - jdb条件断点

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