poky/scripts/lib/devtool
Adrian Freihofer c82c57621b devtool: ide-sdk prefer sources from workspace
Improve the previous commit:
- log an error if some assumptions are not true
- Use TARGET_DBGSRC_DIR variable
- Do the same for ide none

Why the additional source mapping is required:

For example the cmake-example recipe refers to sources like this:
./recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-readelf \
  -wi image/usr/bin/cmake-example | grep -B1 DW_AT_comp_dir
    ...
    <560>   DW_AT_name        : (indirect line string, offset: 0x1da):
    /usr/src/debug/cmake-example/1.0/oe-local-files/cpp-example.cpp
    ...

Another example is powertop:
./recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-readelf \
  -wi image/usr/sbin/powertop | grep -B1 DW_AT_comp_dir
    ...
    <561>   DW_AT_name        : (indirect line string, offset: 0x1da):
    /usr/src/debug/powertop/2.15/src/devlist.cpp
    ...

For recipes with local files this works. The oe-local-files folder is
not available in the rootfs-dbg and therefore the sources are first
found in the workspace folder. GDB searches for source files in various
places:
https://sourceware.org/gdb/current/onlinedocs/gdb.html/Source-Path.html
However, for the powertop example the sources opened in the editor are
from the rootfs-dbg instead of from the workspace.

Bitbake calls the compiler with
  -fmacro-prefix-map=${S}=${TARGET_DBGSRC_DIR}
where TARGET_DBGSRC_DIR defaults to "/usr/src/debug/${PN}/${PV}".

A source map which maps the recipe specific path from TARGET_DBGSRC_DIR
to the workspace fixes this.
The already existing source map for /usr/src/debug applies for all other
recipes. It finds the sources (read only) in the rootfs-dbg folder.

(From OE-Core rev: 06601632c1879cb80276f9b36de91fb7808311a5)

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-27 11:38:46 +00:00
..
ide_plugins devtool: ide-sdk prefer sources from workspace 2024-02-27 11:38:46 +00:00
__init__.py devtool: Make use of oe.patch.GitApplyTree.commitIgnored() 2024-02-19 16:03:22 +00:00
build_image.py Convert to new override syntax 2021-08-02 15:44:10 +01:00
build_sdk.py devtool/build_sdk: Drop unused imports 2023-09-18 08:53:10 +01:00
build.py devtool: build: Also run deploy for devtool build if applicable 2019-08-21 21:52:59 +01:00
deploy.py devtool: refactor deploy-target 2024-02-02 10:38:28 +00:00
export.py meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
ide_sdk.py devtool: ide-sdk prefer sources from workspace 2024-02-27 11:38:46 +00:00
import.py meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
menuconfig.py meta: remove True option to getVar and getVarFlag calls (again) 2023-02-02 09:50:02 +00:00
package.py meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
runqemu.py meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
sdk.py build-sysroots: target or native sysroot population need to be selected explicitly 2023-09-09 12:04:55 +01:00
search.py package/scripts: Fix FILES_INFO handling 2021-08-17 09:53:04 +01:00
standard.py lib/oe/patch: Use git notes to store the filenames for the patches 2024-02-19 16:03:22 +00:00
upgrade.py lib/oe/patch: Use git notes to store the filenames for the patches 2024-02-19 16:03:22 +00:00
utilcmds.py meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00