Java 如何将NetBeans配置为只单步执行我';我写过

Java 如何将NetBeans配置为只单步执行我';我写过,java,debugging,netbeans,Java,Debugging,Netbeans,我错过什么了吗?我很高兴所有这些代码都展示了泛型集合是如何工作的,等等。然而,当我想简单地浏览我的代码时,我总是发现自己在深入Java自己的库代码 有没有可能简单地禁用它,当我步进代码时——我想把所有这些东西都当作一个黑盒子,代码步进只是我写的东西 你知道吗,现在我有了这个能力,有没有可能把我自己的代码也用这种方式包装起来,这样我就可以分步处理我最感兴趣的部分 如果我不能在netbeans中轻松实现,那么在eclipse中是否可能实现呢 感谢您在eclipse中定义步骤过滤器(您不想在调试期间介

我错过什么了吗?我很高兴所有这些代码都展示了泛型集合是如何工作的,等等。然而,当我想简单地浏览我的代码时,我总是发现自己在深入Java自己的库代码

有没有可能简单地禁用它,当我步进代码时——我想把所有这些东西都当作一个黑盒子,代码步进只是我写的东西

你知道吗,现在我有了这个能力,有没有可能把我自己的代码也用这种方式包装起来,这样我就可以分步处理我最感兴趣的部分

如果我不能在netbeans中轻松实现,那么在eclipse中是否可能实现呢


感谢您在eclipse中定义步骤过滤器(您不想在调试期间介入的包)

您将在“窗口/首选项”和“Java/Debug/Step Filtering”中找到配置。

调试器有不同的“单步”指令:

  • 跨接(NetBeans中的F8和Shift+F8)

  • 进入(Netbeans中的F7)

  • 跳出(Netbeans中的Ctrl+F7)

您需要“跳过”您希望作为黑盒处理的方法和表达式。

要自动“跳过”不需要的类,请执行以下操作:

工具→ 选择权→ 混杂的→ Java调试器→ 阶跃滤波器→

⊗ 不要插手


然后按Add,然后添加
java.*
javax.*
,以及所有其他您不想调试的类。这是一个“全局”设置,而不是每个项目

实际上,最简单的方法是转到窗口->调试->源代码,勾选要调试的文件,然后进入。很可能您只需要取消选中项目中的其他源


但这是最简单的方法。

NetBeans 6.8也有步骤过滤器

使用工具->选项(NetBeans->Mac上的首选项)打开选项对话框。。

您可以在NetBeans 8.0.2中选中“逐步通过过滤器以获得未过滤的代码”


谢谢。我知道,我只是不想在浏览代码时费心,这真的会让我不得不做出决定的速度变慢。我通常只关心我自己的代码,所以我想配置我的调试器来自动跳过那些不在我的项目中的文件,比如说,或者标记为在调试范围内的文件。更新:一个用于在NetBeans中设置步骤过滤器的分步指令。这听起来正是我想要的,谢谢。我有点沉迷于NetBeans,我过去确实使用过eclipse(在RSM的背面),并且很享受使用它的时光。如果我真的不能在NetBeans中实现我所需要的功能,我将跳回Eclipse。你赋予了我力量!你给了我一个术语“步骤过滤器”,我发现这个功能也存在于NetBeans中,不知何故,这些词并不等同于我的需求,所以我跳过了这个功能,但它巧妙地总结了我的需求!:-)为什么要投否决票?SO也要求在eclipse中提供解决方案!伟大的我从来不知道这是可能的!谢谢。这是另一种方法。。。而且比定义阶跃过滤器要简单一些
statementA; // step over: to callB
callB();    // step over: to statementB: it will treat the call as a
            //  black-box.
statementB;
statementA = callA() + 4; // step into: will step into the expression
                          // and start to debug the "callA()" method.
callB();                  // step into: will step into the "callB()" method.
statementB;               // some statements don't have anything to step into
void methodB() {
    someStatementB; // stepOut will treat the rest of the method as
                    // a black-box, and you will end up at "someStatementC".
}

someStatementA;
methodB();
someStatementC;