Есть ли в Intellij способ создать условную точку останова, когда в трассировке стека присутствует определенный класс?В качестве альтернативы, когда конкретная точка останова была передана в этой трассировке стека.
Пример: Давайте представим, что у нас есть некоторый служебный метод Utils.doSomething()
, и я хочу останавливаться на этом, только когда этот метод был выполнен из SomeClass.doSomething()
.
Я знаю, что есть «Отключить, пока не будет достигнута точка останова», но это заставляет выполнение кода останавливаться там всякий раз, когда он срабатывает после выполнения начального условия.
Пример:
class SomeClass {
void doSomething() {
int y = 1; // Breakpoint here
Utils.doSomething();
Utils.doSomething();
}
void doSomethingElse() {
Utils.doSomething();
}
}
static class Utils {
static void doSomething() {
int x = 1; // Breakpoint with condition here
}
}
@Test
public void test() {
SomeClass someInstance = new SomeClass();
someInstance.doSomething();
someInstance.doSomethingElse();
someInstance.doSomething();
}
Точка останова на int y = 1;
Точка останова с условием на int x = 1;
Останавливается в Utils.doSomething()
при первом выполнении с SomeClass.doSomething()
, но не останавливается при выполнении Utils.doSomething()
снова на следующей строке.
Правильно не останавливается при выполнении через SomeClass.doSomethingElse()