mbox series

[00/14] devtool: ide-sdk: robust attach-mode debugging and test cleanup

Message ID 20260816194127.86607-1-adrian.freihofer@siemens.com
Headers show
Series devtool: ide-sdk: robust attach-mode debugging and test cleanup | expand

Message

AdrianF Aug. 16, 2026, 7:40 p.m. UTC
From: Adrian Freihofer <adrian.freihofer@siemens.com>

This series improves devtool ide-sdk's remote-debugging workflow, focusing
on GDB's attach mode, and cleans up the corresponding selftests.

- Attach-mode debugging
  The old ATTACH mode started gdbserver with "--attach :<port> $(pidof
  <binary>)" under a plain cppdbg "launch" request - the classic attach
  setup, which is fragile and hits several long-standing, unfixed
  cpptools bugs (e.g. microsoft/vscode-cpptools#4166).
  Switch to attaching over the extended-remote protocol instead, merging
  ATTACH into the same persistent "gdbserver --multi" server already used
  for MULTI mode.

  Until microsoft/vscode-cpptools#14684 is merged, this has one downside
  (one reason extended-remote attach wasn't used before): the user is
  prompted to pick the process to attach to instead of it being selected
  automatically. This is temporary, and the new setup is otherwise more
  robust.

- Selftest cleanup
  - Progressively move the ide-sdk and deploy selftests from raw
    SSH/process-list probing over to the QEMU target command API
  - Replace fixed-delay/process-probe waits with proper readiness-marker
    waits
  - Add attach-mode debug workflow verification with an explicit,
    documented execution order to avoid Build-ID mismatches from
    once/deploy side effects.
  - Adds parallel test classes per toolchain/build-system (gcc/clang,
    cmake/meson).

- Other fixes
  - devtool deploy-target: avoid spurious tar "timestamp in the future"
    warnings when the target clock lags the host.
  - devtool ide-sdk: fix meson IntelliSense for the gcc toolchain
  - cpp-example/ccp-example test fixture robustness fixes for compiler
    optimization and PID file handling.
  - devtool ide-sdk: default to all modified recipes when none is given
    explicitly.

Adrian Freihofer (14):
  devtool: deploy-target: pass tar -m to avoid future timestamp warnings
  oe-selftest: devtool deploy: use QEMU target commands
  oe-selftest: devtool ide-sdk: Add new test classes for ide-sdk tests
  devtool: ide-sdk: fix meson IntelliSense for gcc toolchain
  cpp-example: prevent compiler from eliminating debugger test code
  ccp-example: fix PID file handling
  devtool: ide-sdk: default to all modified recipes
  devtool: ide-sdk: let gdbserver reuse the shared debug server wait
    helper
  oe-selftest: devtool ide-sdk: support $ in gdbserver task command
  devtool: ide-sdk: attach via extended-remote
  oe-selftest: devtool ide-sdk: wait for gdbserver readiness
  oe-selftest: devtool ide-sdk: verify debugger shutdown
  oe-selftest: devtool ide-sdk: use qemu.run for target checks
  oe-selftest: devtool ide-sdk: verify attach debug workflow

 .../cpp/files/cpp-example-lib.hpp             |   6 +-
 .../recipes-test/cpp/files/cpp-example.cpp    |  10 +-
 .../recipes-test/cpp/files/cpp-example.init   |   5 +
 meta/lib/oeqa/selftest/cases/devtool.py       | 579 +++++++++++-------
 scripts/lib/devtool/deploy.py                 |   5 +-
 scripts/lib/devtool/ide_plugins/__init__.py   |  81 ++-
 scripts/lib/devtool/ide_plugins/ide_code.py   | 158 +++--
 scripts/lib/devtool/ide_plugins/ide_none.py   |  44 +-
 scripts/lib/devtool/ide_sdk.py                |  18 +-
 9 files changed, 535 insertions(+), 371 deletions(-)