草庐IT

Debugging

全部标签

java 调试 - 观察超出范围的变量

在调试C/C++应用程序时,我可以创建一个地址表来监视转换为指针类型的地址,然后查看结构的内容,即使它超出范围也是如此。有没有可能在Java中实现类似的东西?假设我在一个方法中,我向“&this”之类的东西添加了一个监视,然后当我离开类方法时,我仍然可以看到它的内容,即使它超出了范围?我很确定我的问题的答案是“否”,所以我最感兴趣的是“为什么不呢?”解释。这是JVM限制吗?JPDA限制?有没有更好的地方可以问这样一个专业的问题? 最佳答案 在C/C++中,您正在观察(指向的区域)任意指针,并将其转换为该变量。在Java中没有指针。您

使用字节码进行 Java 调试

想知道有没有支持混合模式调试的IDE或者EclipsePlugin。当我搜索术语混合模式时,发现很多引用调试VM语言和native代码。但我指的是一种类似于编译语言(例如C)中可用的功能,在这种语言中,用户可以看到C源代码行以及相应的装配线,并且甚至可以在装配级别介入。(请原谅如果我将该功能称为混合模式而犯了命名错误)换句话说,我在调试java时寻找以下功能:能够在程序执行过程中使用java源代码和相应的字节码能够查看JVMPC寄存器和操作数堆栈能够查看其他JVM特定数据结构(例如常量池)这是为了了解Java源代码如何映射到字节码,以及在介入时如何影响各种JVM相关数据结构。

Java 使用带引号的字符串常量

当我将这个带有MB的常量字符串与一个带有MB的变量进行比较时,结果为假。字符串常量看起来像“MB”([",M,B,"]=4长度),我的变量是"MB"([M,B]=2长度)。这里有什么问题。Java无法将代码中的引号放入字符串中。publicstaticfinalStringgc_TelCodeFixed="FX";if(!telcode.getId().equals(com.quoka.qis.db.constant.Constants.gc_TelCodeFixed))thrownewTelcodeTypeMismatchException(telcode.getType());

java - 如何在 Eclipse 中调试 Maven 项目?

我正在尝试在Eclipse中调试以下Maven项目:https://code.google.com/p/cloudscale/我按照RickHigh的说明(在此处找到https://stackoverflow.com/a/19986408/3014213),当我在终端中编写mvnDebugexec:exec时,行PreparingtoExecuteMaveninDebugModeListeningfortransportdt_socketataddress:8000出现并在Eclipse中启动远程Java应用程序后,项目已启动,但它没有保持断点...有什么想法,哪里可能出错?

java - 调试 Java 的 ScriptEngine 对象

我开始使用ScriptEngine来运行javascript代码。我发现它非常有用并且非常适合我的需要,但是缺少一件事,那就是它的调试。我该怎么做?我真的希望能够只放置一个断点或进入并看到js解释器一步一步地运行我的代码。这可能吗? 最佳答案 不可否认,这不是一个很好的答案(但您的问题缺少有关您希望使用哪些JDK或工具进行调试的详细信息)。无论如何,如果您使用IntelliJ作为IDE,它会附带一个Nashorn调试器,允许您单步执行JavaScript代码和任何引用的Java代码。更多细节在这里:http://blog.jetbr

java - gradle:从 5005 更改默认端口

我想调试一些同时运行的JVM实例。我知道我可以使用--debug-jvm运行gradle,这样JVM会等到我启动IDE调试器,以便它连接到JVM,但默认情况下它使用端口5005。这对于调试JVM的一个实例来说很好......但是如果我想调试多个实例,我将需要定义一个与5005不同的端口。我如何使用gradle实现这一点? 最佳答案 在我的例子中,我想调试一个特定的文件,所以我在build.gradle中包含了以下代码:taskexecFile(type:JavaExec){main=mainClassclasspath=source

java - 如何在 Eclipse 中导出或保存检查的对象结构?

有没有办法保存/导出(也需要能够稍后查看)检查的对象结构?可能导出为XML或JSON结构? 最佳答案 您可以使用xstream,例如Java对象:publicclassPerson{privateStringfirstname;privateStringlastname;privatePhoneNumberphone;privatePhoneNumberfax;//...constructorsandmethods}publicclassPhoneNumber{privateintcode;privateStringnumber;/

java - 在 GWT super 开发模式下调试?

到目前为止,在GWTsuper开发模式下调试似乎是一件很痛苦的事情。如果有任何错误,则没有堆栈跟踪,只有chrome控制台中给出的一条神秘消息。有没有办法让所有错误打印堆栈跟踪,就像在开发模式下一样?我相信我已经有了源映射,因为如果我转到Chrome开发工具中的源,我可以看到我的java类的源代码。 最佳答案 GWT.setUncaughtExceptionHandler让您设置一个异常处理程序,它将处理所有异常。然后,您可以使用类似thiscode的方式获取该异常的堆栈跟踪信息,然后将exception.toString()和堆栈

java - intellij GWT调试配置

如何覆盖默认服务器intellij的GWT调试配置?Intellij将Jetty作为默认服务器,但我希望它使用jboss服务器。我尝试使用Jetty服务器,但出现身份验证错误之类的问题......有人知道如何覆盖默认服务器,或者为什么我在使用Jetty时会出现此类错误吗? 最佳答案 我没有用JBoss测试它,但是使用Tomcat作为服务器它运行良好:编译您的GWT项目创建一个新的web应用程序项目并将已编译的GWT工件、html和css文件添加到该项目为Tomcat创建一个运行配置,并将新创建的Web项目添加到该服务器并启动它使用以

java - Java 热交换的局限性

Javahotswap功能为我节省了很多时间。但是,它有很多限制(例如不支持架构更改)。知道限制是否会尽快解决吗?根据这个forumentry,它似乎被忽略了。我知道像JRebel这样的产品有帮助。但是有人知道这方面的开源工具吗? 最佳答案 可以查看DynamicCodeEvolutionVM(也在http://java.net/projects/dcevm) 关于java-Java热交换的局限性,我们在StackOverflow上找到一个类似的问题: htt