mbox series

[0/9] devtool: ide-sdk clang/LLDB support and minor fixes

Message ID 20260318223736.3414885-1-adrian.freihofer@siemens.com
Headers show
Series devtool: ide-sdk clang/LLDB support and minor fixes | expand

Message

Freihofer, Adrian March 18, 2026, 10:36 p.m. UTC
From: Adrian Freihofer <adrian.freihofer@siemens.com>

This series adds clang/LLDB support to devtool ide-sdk and contains
some bug fixes accumulated before the release.

Bug fixes and small improvements:

- Various selftest robustness fixes: use stat(1) instead of ls for
  user/group name lookups, switch to assertRegex, fix conf-file
  ownership with static UIDs/GIDs, add a GDB test that sets a
  breakpoint after std::vector construction.
- ide-sdk: use TOOLCHAIN instead of TCOVERRIDE to detect the active
  toolchain.
- ide-sdk debugger back-end: fix a typo (is_c_ccp -> is_c_cpp) and
  cleanly separate the debugger configuration from the IDE-specific
  launch/task file generation to simplify adding further back-ends.

Clang and LLDB support:

- ide-sdk: add LLDB (CodeLLDB) remote debugging support for the clang
  toolchain, including lldb-server target configuration, RecipeLldbNative
  host wrapper, source-map handling and VSCode launch.json generation.
- meta-selftest: refactor cmake-example and meson-example into shared
  .inc files and add clang variants (cmake-example-clang,
  meson-example-clang) to exercise the new toolchain path.
- oe-selftest: add end-to-end tests for devtool ide-sdk with the clang
  toolchain, including a full remote debugging session where the binary
  is compiled with clang and debugged with LLDB.

Adrian Freihofer (9):
  oe-selftest: devtool: use stat for reading user/group names in ide-sdk
    tests
  oe-selftest: devtool: GDB breakpoint after std::vector is constructed
  oe-selftest: devtool: use assertRegex to match test output for meson
  oe-selftest/cpp-example: fix conf file ownership with static UIDs/GIDs
  devtool: ide-sdk: use TOOLCHAIN not TCOVERRIDE
  devtool: ide-sdk debugger back-end abstraction
  devtool: ide-sdk add LLDB support for clang toolchain
  meta-selftest: refactor cpp examples into .inc files and add clang
    variants
  oe-selftest: devtool ide-sdk: add clang/LLDB test

 meta-selftest/files/static-group              |   2 +
 meta-selftest/files/static-passwd             |   2 +
 .../recipes-test/cpp/cmake-example-clang.bb   |  13 +
 .../recipes-test/cpp/cmake-example.bb         |  20 +-
 .../recipes-test/cpp/cmake-example.inc        |  29 ++
 .../recipes-test/cpp/cmake-example/run-ptest  |  10 -
 .../recipes-test/cpp/cpp-example.inc          |  26 +-
 .../recipes-test/cpp/files/CMakeLists.txt     |  35 +--
 .../recipes-test/cpp/files/meson.build        |  17 +-
 .../recipes-test/cpp/files/meson.options      |   6 +
 .../cpp/{meson-example => files}/run-ptest    |   4 +-
 .../recipes-test/cpp/meson-example-clang.bb   |  13 +
 .../recipes-test/cpp/meson-example.bb         |  24 +-
 .../recipes-test/cpp/meson-example.inc        |  36 +++
 meta/lib/oeqa/selftest/cases/devtool.py       | 229 +++++++++++++++-
 scripts/lib/devtool/ide_plugins/__init__.py   | 258 ++++++++++++------
 scripts/lib/devtool/ide_plugins/ide_code.py   | 146 ++++++++--
 scripts/lib/devtool/ide_plugins/ide_none.py   |  26 +-
 scripts/lib/devtool/ide_sdk.py                |  86 +++++-
 19 files changed, 754 insertions(+), 228 deletions(-)
 create mode 100644 meta-selftest/recipes-test/cpp/cmake-example-clang.bb
 create mode 100644 meta-selftest/recipes-test/cpp/cmake-example.inc
 delete mode 100644 meta-selftest/recipes-test/cpp/cmake-example/run-ptest
 rename meta-selftest/recipes-test/cpp/{meson-example => files}/run-ptest (51%)
 create mode 100644 meta-selftest/recipes-test/cpp/meson-example-clang.bb
 create mode 100644 meta-selftest/recipes-test/cpp/meson-example.inc