草庐IT

Debugging

全部标签

java - Eclipse 中的 "toggle line breakpoint"和 "toggle breakpoint"有什么区别?

我只是无法理解Eclipse中菜单的Run按钮下的两个选项。通常断点不是指一行吗?我意识到可能存在这种情况:if(x>=0&&x=0&&y但是当第2行的togglelinebreakpoint设置断点时,也可以通过togglebreakpoint取消设置。那么它们到底有什么区别,如何区分它们带有符号? 最佳答案 在eclipse中你可以有5种类型的断点:你习惯的那个:普通的行断点一个条件断点,您在一行中停止,但仅当满足特定条件时才停止进入方法时触发的方法断点异常断点,在任何抛出特定异常的行上停止。(根据我忘记的评论)观察点:使用它们

java - 递归算法的调试

我的问题是是否有一些聪明的方法可以调试复杂的递归算法。假设我们有一个复杂的(不是在每次“嵌套迭代”中减少递归计数器的简单情况)。我的意思是在可能出现循环时递归遍历图。我需要检查我是否没有在某处陷入无限循环。仅使用调试器执行此操作并不能给出确定的答案(因为我不确定算法是否处于无限循环中或只是按应有的方式处理)。没有具体的例子很难解释。但是我需要的是...'检查无限循环是否不会发生在让我们说复杂的递归算法中'。 最佳答案 您需要形成一个理论来解释为什么您认为算法会终止。理想情况下,将理论证明为数学定理。您可以寻找在每次递归调用时都减少的

java - 是否可以在 Eclipse 调试器的值列中显示 toString() 结果?

是否可以在Eclipse调试器的值列中显示toString()结果?默认情况下,它显示内置类型的值和用户类型的类型名称+id:请注意,调试器肯定可以显示toString(),但它仅在单独的部分(下面)中执行此操作,而不是在Value列中执行此操作。 最佳答案 这是可能的,如果有点笨拙。一张图片,千余字:在首选项中,搜索“DetailFormatters”。(可选)为要检查的每种类型定义一个简单的返回命令(如果您想自己选择详细信息)。然后在下方,选择“显示变量详细信息>作为所有变量的标签”(如果toString()对您来说足够了),或

java - Intellij IDEA : How to navigate between tabs of debug tool window using the keyboard?

是否可以使用键盘在这些选项卡之间导航?Alt+Left/Alt+Right快捷方式在案例中的嵌套选项卡Console/Debugger中导航如上所示。 最佳答案 我找到了discussion与我的问题有关。它似乎不是为键盘设计的:Actuallyit'sdesignedformouse/trackpadandthereisnowaytoswitchfromcelltocell.还有一个issueIDEA-164210关于JetBrains跟踪器中的内容。 关于java-IntellijI

java - 在 Eclipse 中调试时查找类的所有实例

我想知道Java/JVM的工作方式是否意味着像Eclipse这样的调试工具可以向我显示给定类的所有实例的列表?我想可以写一些反射代码,但我不想每次都在同一个地方中断执行……而是我想中断执行并调出所有MyClass123对象的列表在调试窗口中。这可能吗?它是在Eclipse或任何插件中提供的吗? 最佳答案 是的,在标准的Eclipse调试器中是可能的。参见here.调试时,右键单击“变量View”中的变量条目,然后单击“所有实例”:这将打开如下列表: 关于java-在Eclipse中调试时

java - Maven 命令行

是否可以在构建配置文件中设置环境变量而不是在命令行中设置它们?例如,我想在使用测试环境(-Denv=test)时启用调试器。我希望maven这样做:exportMAVEN_OPTS="-Xdebug-Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n"这样,我可以快速附加调试器,而无需一遍又一遍地键入相同的重复行。我不相信在这种情况下对我有帮助:...-Xdebug-Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport

java - 无法使用 Eclipse 运行 jUnit

我使用新的Eclipse。使用jUnit创建演示测试(我在Eclipse中添加了默认的jUnit库)。然后我写这段代码:importjunit.framework.*;importorg.junit.Test;publicclassSimpleTestextendsTestCase{publicSimpleTest(Stringname){super(name);}publicfinalvoidmain(Stringmethod){}@TestpublicfinalvoidtestSimpleTest(){intanswer=2;assertEquals((1+1),answer);}

java - 无法在 Eclipse 调试透视图中查看源代码

我在调试视角中移动窗口的排列。之后,无论我在Java透视图中打开了哪些.java文件,在调试透视图中只会打开带有main方法的源文件,我不知道如何查看其他源文件。然后,我不小心关闭了主源文件,现在我在调试View中看不到任何源代码。如果我转到Window->NewEditor,或者如果我从导航器中双击Main.java,则没有任何反应。我将视角重置为默认值,在编辑器中显示“没有idorg.eclipse.ui.internal.emptyEditorTab的编辑器描述符” 最佳答案 基于此尝试此link,关闭eclipse并删除.m

java - Eclipse 条件断点 - 仅在其他断点之后

我正在调试一个执行大量方法调用的应用程序。例如,我想调试methodA。它被调用了1000次。但是,在我的主循环中,我只想在几条语句后开始调试方法A。publicvoidmethodA(){//doessomethingnastythatIwanttodebug}publicstaticvoidmain(String[]args){for(inti=0;i我想在methodAmethodB被调用之后开始中断。我真的不想更改我的代码(例如,插入一个boolean值并使断点以该boolean为条件)。在Eclipse中可以实现这样的功能吗?或者有更好的选择吗?

java - Sigar 不满意链接错误

我是Sigar的新手。我想运行一个简单的测试来了解如何监控我的系统。我添加了sigar-1.6.4和log4j作为外部库,但是当我运行它时,我遇到了这个错误:线程“main”中的异常java.lang.UnsatisfiedLinkError:org.hyperic.sigar.Sigar.getCpuInfoList()[Lorg/hyperic/sigar/CpuInfo;在org.hyperic.sigar.Sigar.getCpuInfoList(native方法)这是我的代码:importjava.util.Map;importorg.hyperic.sigar.CpuInf