In the past you could tell the nodes in a test cluster to attach themselves to a waiting debugger on startup by passing the `--debug-server-jvm` option documented here:

https://github.com/elastic/elasticsearch/blob/c0228c73fea5caf279bf7141eabea50813c4528b/TESTING.asciidoc#L383-L390

I think this changed in #92379 and no longer seems to work. In fact I really wanted to attach a debugger to just one of the nodes in the cluster, and I believe #92379 might make this much easier to use (e.g. maybe via a method `LocalNodeSpecBuilder#debuggerPort(int)`). That'd be even better.
test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/LocalClusterFactory.java
}
            return readPortsFile(portFile).get(0);
        }
        public String getTransportEndpoint() {
            Path portsFile = workingDir.resolve("logs").resolve("transport.ports");
            if (Files.notExists(portsFile)) {
                waitUntilReady();
            }
            return readPortsFile(portsFile).get(0);
        }
        public LocalNodeSpec getSpec() {
            return spec;
        }
        Path getWorkingDir() {
            return workingDir;
        }
        public void waitUntilReady() {
            try {
                Retry.retryUntilTrue(NODE_UP_TIMEOUT, Duration.ofMillis(500), () -> {
                    if (process.isAlive() == false) {
                        throw new RuntimeException(
                            "Elasticsearch process died while waiting for ports file. See console output for details."
                        );
                    }
                    Path httpPorts = workingDir.resolve("logs").resolve("http.ports");
                    Path transportPorts = workingDir.resolve("logs").resolve("transport.ports");
                    return Files.exists(httpPorts) && Files.exists(transportPorts);
                });
            } catch (TimeoutException e) {
                throw new RuntimeException("Timed out after " + NODE_UP_TIMEOUT + " waiting for ports files for: " + this);