是否有一个旨在调试并发软件的JVM?

时间:2010-05-04 05:04:50

标签: java multithreading debugging jvm concurrency

我使用了Concurrent Pascal,这是一个帮助调试并发算法的工具,因为当它运行你的代码时,它会随机化每个可能步骤交换的线程,尝试尽可能多的路径。

是否有可以执行此操作的JVM?

2 个答案:

答案 0 :(得分:2)

我没有知道这样做的商业JVM,但我建议你看看像ConTest这样的工具,试图在你的问题领域帮助你:

ConTest on developerWorks

ConTest on research site

通常,因为大多数商业JVM都依赖操作系统来进行线程调度,所以JVM自己做这件事并不自然。 Jikes-RVM的绿色线程版本可能有些东西(可能是旧版本)。

答案 1 :(得分:2)

看一下Java Pathfinder(来自NASA,但它是免费的)。我认为它应该开箱即用,即尝试不同的交错(可能需要一些装配)。

当然,您仍然需要在您感兴趣的数据上指定验证属性,例如不变量。否则,默认情况下它可能只会告诉您是否存在死锁。请查看“探索执行替代方案”部分。