Один относительно простой способ сделать это (который может или не может работать в вашем случае - зависит от того, как долго происходит поведение):
Когда ваше приложение демонстрирует поведение, которое вы хотите отладить (в этомВ этом случае использование ЦП на 90-100%) использует jstack для идентификатора процесса:
http://download.oracle.com/javase/6/docs/technotes/tools/share/jstack.html
, чтобы проверить, какие потоки запущены и какими методами они происходят.Если вы сделаете это несколько раз, может быть относительно легко обнаружить цепочку вызовов преступника.Затем вы можете просто отладить вход в эту цепочку.
Это не обязательно лучший или самый элегантный метод, но это очень легко сделать, и это может быть все, что вам нужно.Я бы начал там.Это похоже на философию «printf - лучший отладчик, который я когда-либо использовал».