All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/8] oe-selftest: devtool ide-sdk: fix lldb connect race in _lldb_server_debugging_once
@ 2026-08-09  9:35 AdrianF
  2026-08-09  9:35 ` [PATCH v2 1/8] devtool: ide-sdk: wait for lldb-server readiness AdrianF
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: AdrianF @ 2026-08-09  9:35 UTC (permalink / raw)
  To: openembedded-core; +Cc: Adrian Freihofer

From: Adrian Freihofer <adrian.freihofer@siemens.com>

The autobuilder intermittently failed the clang devtool ide-sdk selftest when
LLDB attempted to connect before lldb-server had started listening. The first
two commits prevent that race: generated LLDB MULTI tasks wait for the target
TCP listener before returning, and the selftest runs that startup task
synchronously before starting LLDB.

The remaining commits make the debugger lifecycle and its coverage more
robust. Centralize TCP polling, timeout cleanup, server naming,
readiness-marker generation, and shutdown handling in DebuggerCrossConfig.
GDB ONCE and ATTACH tasks emit a dedicated readiness marker and retain their
SSH connection for the debug session. Remove the unused LLDB one-shot start
path and reject unsupported LLDB modes explicitly.

Strengthen the devtool ide-sdk selftests to exercise these generated task
contracts rather than rely on timing or process-list probes. Use QEMU target
commands, wait for GDB's readiness marker, and normalize task-shell dollar
escaping before invoking SSH directly. Keep the C++ debugger test code
observable so breakpoint checks remain meaningful across toolchains and
rebuilds.

Changes from v1 to v2:
- Rather than making the connection-failure path more robust, v2 prevents the
  failure by waiting for lldb-server to become ready before connecting.
- Extend the same lifecycle synchronization and coverage to related debugger
  startup and shutdown paths.

Adrian Freihofer (8):
  devtool: ide-sdk: wait for lldb-server readiness
  oe-selftest: devtool ide-sdk: wait for lldb-server readiness
  devtool: ide-sdk: synchronize debugger server readiness
  oe-selftest: devtool ide-sdk: wait for gdbserver readiness
  devtool: ide-sdk: wait for debugger server shutdown
  oe-selftest: devtool ide-sdk: verify debugger shutdown
  oe-selftest: devtool: use QEMU target commands
  cpp-example: prevent compiler from eliminating debugger test code

 .../cpp/files/cpp-example-lib.hpp             |   6 +-
 .../recipes-test/cpp/files/cpp-example.cpp    |  10 +-
 meta/lib/oeqa/selftest/cases/devtool.py       | 222 +++++++++---------
 scripts/lib/devtool/ide_plugins/__init__.py   |  74 ++++--
 scripts/lib/devtool/ide_plugins/ide_code.py   |   7 +-
 scripts/lib/devtool/ide_plugins/ide_none.py   |  17 +-
 6 files changed, 193 insertions(+), 143 deletions(-)

-- 
2.55.0



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-08-11  8:41 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-09  9:35 [PATCH v2 0/8] oe-selftest: devtool ide-sdk: fix lldb connect race in _lldb_server_debugging_once AdrianF
2026-08-09  9:35 ` [PATCH v2 1/8] devtool: ide-sdk: wait for lldb-server readiness AdrianF
2026-08-09  9:35 ` [PATCH v2 2/8] oe-selftest: devtool " AdrianF
2026-08-09  9:35 ` [PATCH v2 3/8] devtool: ide-sdk: synchronize debugger server readiness AdrianF
2026-08-09  9:35 ` [PATCH v2 4/8] oe-selftest: devtool ide-sdk: wait for gdbserver readiness AdrianF
2026-08-11  8:41   ` [OE-core] " Mathieu Dubois-Briand
2026-08-09  9:35 ` [PATCH v2 5/8] devtool: ide-sdk: wait for debugger server shutdown AdrianF
2026-08-09  9:35 ` [PATCH v2 6/8] oe-selftest: devtool ide-sdk: verify debugger shutdown AdrianF
2026-08-09  9:35 ` [PATCH v2 7/8] oe-selftest: devtool: use QEMU target commands AdrianF
2026-08-09  9:35 ` [PATCH v2 8/8] cpp-example: prevent compiler from eliminating debugger test code AdrianF

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.