在Eclipse中调试时加快时间

时间:2011-11-28 06:49:27

标签: java eclipse debugging

在Eclipse中调试时有没有办法“加快时间”?

例如,假设您正在调试以下代码:

someFun();
Thread.sleep(ONE_MINUTE);
someOtherFun();

...当达到Thread.sleep()方法时,您必须等待一分钟才能继续调试。有没有办法“加快时间”并让sleep()方法立即返回? (我知道这种加速实际上可能很危险,但我们假设它不会干扰程序的正确性。)

下一个替代方法是将Thread.sleep()包装并将其置于调试标志下,但我希望避免对代码进行此类更改。

2 个答案:

答案 0 :(得分:2)

您可以尝试查看应用程序是否以调试模式启动。取决于你可以设置改变睡眠时间。但要小心。特别是如果你使用thread.sleep()。根据您的使用情况,应用程序可能会有所不同。

public static final int ONE_SECOND = 1000;
public static final int ONE_MINUTE = 60 * ONE_SECOND;
public static final int SLEEP_TIME = (java.lang.management.ManagementFactory.getRuntimeMXBean().
    getInputArguments().toString().indexOf("-agentlib:jdwp") > 0)?ONE_SECOND:ONE_MINUTE;

答案 1 :(得分:1)

在执行Thread.sleep之前,您可以使用更改值选项从变量视图更改ONE_MINUTE的值。这似乎不适用于最终字段。

另一种选择可能是用另一种方法将调用包装成睡眠状态,你可以从方法中“强制返回”。