void (String funcName, int callOrder) { XDebugSession currentSession = XDebuggerManager.getInstance(getProject()).getCurrentSession(); Assert.assertTrue(currentSession.isSuspended()); Assert.assertEquals(0, myPausedSemaphore.availablePermits()); ReadAction.run(() -> { List<?> smartStepIntoVariants = getSmartStepIntoVariants(); for (Object o : smartStepIntoVariants) { PySmartStepIntoVariant variant = (PySmartStepIntoVariant) o; if (variant.getFunctionName().equals(funcName) && variant.getCallOrder() == callOrder) myDebugProcess.startSmartStepInto(variant); } }); }