diff --git a/scripts/lib/devtool/ide_plugins/__init__.py b/scripts/lib/devtool/ide_plugins/__init__.py
index deb6050907..63e9682e73 100644
--- a/scripts/lib/devtool/ide_plugins/__init__.py
+++ b/scripts/lib/devtool/ide_plugins/__init__.py
@@ -97,19 +97,28 @@ class DebuggerCrossConfig:
             modes.append(DebuggerServerModes.ATTACH)
         return modes
 
+    # Re-tries in 0.1s Example: 300 * 0.1s, i.e. ~30s.
+    TARGET_START_RETRIES = 300
+
     def _target_tcp_port_check_cmd(self):
         hex_port = "%04X" % self.debug_server_port
         return "grep -q :%s /proc/net/tcp /proc/net/tcp6 2>/dev/null" % hex_port
 
-    def _target_wait_for_tcp_port_cmd(self, pid_var=None):
+    def _target_wait_for_tcp_port_cmd(self, pid_var=None, log_file=None):
+        """Shell fragment waiting until the debug server listens on its port.
+
+        The server log is dumped to stderr when giving up.
+        """
+        dump_log = "cat %s >&2; " % log_file if log_file else ""
         cleanup = ""
         if pid_var:
             cleanup = "kill \\$_%s 2>/dev/null; " % pid_var
         return (
-            "_w=0; while ! %s; do _w=\\$((_w+1)); [ \\$_w -lt 100 ] || { "
-            "%secho %s did not start on port %s >&2; exit 1; }; sleep 0.1; done;"
-            % (self._target_tcp_port_check_cmd(), cleanup, self.DEBUG_SERVER_NAME,
-               self.debug_server_port))
+            "_w=0; while ! %s; do _w=\\$((_w+1)); [ \\$_w -lt %d ] || { "
+            "%secho %s did not start on port %s after \\$_w retries >&2; %sexit 1; }; "
+            "sleep 0.1; done;"
+            % (self._target_tcp_port_check_cmd(), self.TARGET_START_RETRIES,
+               cleanup, self.DEBUG_SERVER_NAME, self.debug_server_port, dump_log))
 
     def initialize(self):
         """Called after construction to generate any required config files."""
@@ -249,7 +258,7 @@ class LldbServerConfig(DebuggerCrossConfig):
                 lldb_server, self.debug_server_port, log_file)
             cmd += "echo \\$_lldb_server_pid > %s; " % pid_file
             cmd += self._target_wait_for_tcp_port_cmd(
-                "lldb_server_pid")
+                "lldb_server_pid", log_file)
         else:
             raise DevtoolError(
                 "lldb-server does not support mode %s "
