You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
VM Suspend Controls for Launch and Attach: Added --no-suspend option to debroid launch and --suspend flag to debroid attach allowing explicit control over whether the VM should be suspended immediately upon connection (#43).
Fixed
Exit Code 0 for Informational CLI Flags: Ensured CliRunner exits with status code 0 when invoked with --help, --version, or --schema instead of terminating with code 1 (#60).
Support Custom Daemon Port and Clean Up Dead Code: Added --port / -p option and DEBROID_PORT environment variable to DebroidCli root command to allow configuring custom daemon ports, and removed unused dead DebroidCommand class (#61).
Clean ADB Port Forwards on Process Termination: Registered a JVM shutdown hook in DaemonServer to ensure active JDI sessions and ADB port forwards are safely cleaned up and un-forwarded when the daemon process is terminated via SIGTERM, Ctrl+C, or killed by the OS (#56).
Hang on Detach / Stop & App Freezing: Fixed an issue where debroid detach and debroid stop hung indefinitely when disconnecting from a stepped or suspended target application on Android ART. Event request tracking is now cleared in-memory without sending blocking JDWP delete requests, suspended threads and the target VM are explicitly resumed upon teardown to keep the app responsive, a 15s timeout safeguard is configured on the SocketAttach JDI connector, CLI socket communication timeouts are added, and step execution requests are updated to SUSPEND_ALL with resumeAll() to prevent deadlocks (#65).
Hang in Command Runner on Stream Reading: Fixed a potential hang in DefaultCommandRunner where process standard output was read synchronously before checking process timeout, causing CLI execution to block indefinitely if a subprocess stalled without closing its output stream (#55).
Threads Command Schema and Type Mismatch: Fixed schema descriptor and response format for debroid threads <session_id>. Replaced numeric status codes and snake_case strings with strongly-typed ThreadInfo and CliThreadInfo models featuring camelCase properties (threadId, threadName, status, isSuspended) and a typed ThreadStatus enum (RUNNING, SLEEPING, WAIT, MONITOR, NOT_STARTED, ZOMBIE, UNKNOWN) (#54).
App Startup Breakpoint Catching: Fixed an issue where debroid launch returned before the VM was actually suspended (suspendedThreadsCount: 0), causing Android to finish startup execution before breakpoints could be set. The VM is now suspended immediately upon connection by default (#43).