aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-23 23:58:59 +0200
committerblasty <blasty@local>2026-07-23 23:58:59 +0200
commit2b7623ab730f486613f47dbcde7e5432ced24021 (patch)
tree88e6bead195985f7620e9b0eabfc3f282f01fa93
parentux: start the analysis server from inside the TUI (no more dead window) (diff)
downloadida-tui-2b7623ab730f486613f47dbcde7e5432ced24021.tar.gz
ida-tui-2b7623ab730f486613f47dbcde7e5432ced24021.tar.xz
ida-tui-2b7623ab730f486613f47dbcde7e5432ced24021.zip
ux: label the startup wait as auto-analysis, not "starting a server"
The supervisor opens + auto-analyzes its seed binary BEFORE it binds the port (idalib_supervisor.main), so the whole "starting analysis server" wait is really IDA running initial auto-analysis. Relabel the overlay notes to say so: "starting IDA — initial auto-analysis of <bin>…" then "auto-analyzing <bin>… (Ns) first open of a big binary can take a while". Message-only change in _ensure_server (with the progress callback); no behavior change. Verified the emitted notes with a mocked server-up poll.
-rw-r--r--idatui/launch.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/idatui/launch.py b/idatui/launch.py
index 7432a53..50ad88c 100644
--- a/idatui/launch.py
+++ b/idatui/launch.py
@@ -83,7 +83,11 @@ def _ensure_server(url: str, target: str | None, timeout: float = 90.0,
if host not in ("127.0.0.1", "localhost", "::1"):
note(f"server at {host}:{port} is down and not local — cannot auto-start")
return False
- note(f"starting analysis server (log: {_server_log_path()})…")
+ # The supervisor opens + auto-analyzes its seed binary BEFORE it binds the
+ # port (idalib_supervisor.main), so this whole wait is really IDA running
+ # initial auto-analysis — label it as such, not just "starting a server".
+ label = os.path.basename(target) if target else "binary"
+ note(f"starting IDA — initial auto-analysis of {label}…")
proc = _start_supervisor(target)
deadline = time.time() + timeout
t0 = time.time()
@@ -93,9 +97,10 @@ def _ensure_server(url: str, target: str | None, timeout: float = 90.0,
if proc is not None and proc.poll() is not None:
note("analysis server exited during startup — check the log")
return False
- note(f"starting analysis server… ({int(time.time() - t0)}s)")
+ note(f"auto-analyzing {label}… ({int(time.time() - t0)}s) "
+ f"first open of a big binary can take a while")
time.sleep(0.5)
- note(f"analysis server did not come up within {timeout:.0f}s")
+ note(f"analysis did not finish within {timeout:.0f}s")
return False