diff --git a/platformio/commands/debug.py b/platformio/commands/debug.py index e176bab3..46d26d89 100644 --- a/platformio/commands/debug.py +++ b/platformio/commands/debug.py @@ -82,9 +82,10 @@ def cli(ctx, project_dir, project_conf, environment, verbose, interface, __unpro if "platform" not in env_options: raise ProjectEnvsNotAvailableError() - debug_config = DebugConfigFactory.new( - init_platform(env_options["platform"]), project_config, env_name - ) + with fs.cd(project_dir): + debug_config = DebugConfigFactory.new( + init_platform(env_options["platform"]), project_config, env_name + ) if "--version" in __unprocessed: return subprocess.run( diff --git a/platformio/debug/config/base.py b/platformio/debug/config/base.py index 53abadc9..019f9edb 100644 --- a/platformio/debug/config/base.py +++ b/platformio/debug/config/base.py @@ -146,9 +146,7 @@ class DebugConfigBase: # pylint: disable=too-many-instance-attributes ) def _load_build_data(self): - data = load_project_ide_data( - os.path.dirname(self.project_config.path), self.env_name, cache=True - ) + data = load_project_ide_data(os.getcwd(), self.env_name, cache=True) if data: return data raise DebugInvalidOptionsError("Could not load a build configuration") diff --git a/platformio/debug/helpers.py b/platformio/debug/helpers.py index d2d2716c..6b4d4278 100644 --- a/platformio/debug/helpers.py +++ b/platformio/debug/helpers.py @@ -105,6 +105,7 @@ def predebug_project( ctx.invoke( cmd_run, project_dir=project_dir, + project_conf=project_config.path, environment=[env_name], target=["__debug"] + (["upload"] if preload else []), verbose=verbose, diff --git a/platformio/project/config.py b/platformio/project/config.py index dd75f701..6c5aa7b1 100644 --- a/platformio/project/config.py +++ b/platformio/project/config.py @@ -384,7 +384,7 @@ class ProjectConfigDirsMixin(object): if result is None: return None - project_dir = os.path.dirname(self.path) + project_dir = os.getcwd() # patterns if "$PROJECT_HASH" in result: