Re: [PATCH v2 2/5] devtool: code: Add source mapping for debug source files

adrian.freihofer
2024-02-20T09:01:54Z

On Mon, 2024-02-19 at 17:55 +0100, Enguerrand de Ribaucourt wrote:
> When launching the debug configuration, the source files from the
> debug
> rootfs were openened in the editor instead of the local workspace
> files.
> We add an exception to properly map them to the file being developed
> and
> compiled by the IDE integration. This also more closely matches what
> the
> user would expect compared to native development.
>
> This is also true for the devtool fallback mode.

This looks still wrong to me. If files from the rootfs are openend for
a recipe which is in the workspace, the SDK is broken and we need to
understand and fix that. This patch does not solve that, but will make
it much harder to find the right solution for this issue.

Adrian

>
> Signed-off-by: Enguerrand de Ribaucourt
> <enguerrand.de-ribaucourt@savoirfairelinux.com>
> ---
>  scripts/lib/devtool/ide_plugins/ide_code.py | 1 +
>  scripts/lib/devtool/ide_sdk.py              | 1 +
>  2 files changed, 2 insertions(+)
>
> diff --git a/scripts/lib/devtool/ide_plugins/ide_code.py
> b/scripts/lib/devtool/ide_plugins/ide_code.py
> index b2193130d2e..c063b7d0590 100644
> --- a/scripts/lib/devtool/ide_plugins/ide_code.py
> +++ b/scripts/lib/devtool/ide_plugins/ide_code.py
> @@ -234,6 +234,7 @@ class IdeVSCode(IdeBase):
>          if gdb_cross_config.image_recipe.rootfs_dbg:
>              launch_config['additionalSOLibSearchPath'] =
> modified_recipe.solib_search_path_str(
>                  gdb_cross_config.image_recipe)
> +            src_file_map[os.path.join("/usr/src/debug",
> modified_recipe.pn, modified_recipe.pv)] = "${workspaceFolder}"
>              src_file_map["/usr/src/debug"] = os.path.join(
>                  gdb_cross_config.image_recipe.rootfs_dbg, "usr",
> "src", "debug")
>          else:
> diff --git a/scripts/lib/devtool/ide_sdk.py
> b/scripts/lib/devtool/ide_sdk.py
> index 14679744807..f292edbe25c 100755
> --- a/scripts/lib/devtool/ide_sdk.py
> +++ b/scripts/lib/devtool/ide_sdk.py
> @@ -356,6 +356,7 @@ class RecipeModified:
>              'PACKAGE_DEBUG_SPLIT_STYLE')
>          self.path = recipe_d.getVar('PATH')
>          self.pn = recipe_d.getVar('PN')
> +        self.pv = recipe_d.getVar('PV')
>          self.recipe_sysroot = os.path.realpath(
>              recipe_d.getVar('RECIPE_SYSROOT'))
>          self.recipe_sysroot_native = os.path.realpath(