Fixed an issue with PIO Unified Debugger on Windows when debug server is piped

This commit is contained in:
Ivan Kravets
2019-08-27 20:23:03 +03:00
parent 8037bef847
commit 81fc1c9010
4 changed files with 12 additions and 5 deletions

View File

@@ -11,6 +11,7 @@ PlatformIO 4.0
* Update SCons tool to 3.1.1 * Update SCons tool to 3.1.1
* Remove ProjectConfig cache when "platformio.ini" was modified outside * Remove ProjectConfig cache when "platformio.ini" was modified outside
* Fixed an issue with PIO Unified Debugger on Windows OS when debug server is piped
4.0.2 (2019-08-23) 4.0.2 (2019-08-23)
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~

View File

@@ -19,7 +19,7 @@ from hashlib import sha1
from io import BytesIO from io import BytesIO
from os.path import isfile from os.path import isfile
from platformio import exception, util from platformio import exception, fs, util
from platformio.commands.platform import \ from platformio.commands.platform import \
platform_install as cmd_platform_install platform_install as cmd_platform_install
from platformio.commands.run import cli as cmd_run from platformio.commands.run import cli as cmd_run
@@ -165,11 +165,11 @@ def configure_esp32_load_cmds(debug_options, configuration):
mon_cmds = [ mon_cmds = [
'monitor program_esp32 "{{{path}}}" {offset} verify'.format( 'monitor program_esp32 "{{{path}}}" {offset} verify'.format(
path=item['path'], offset=item['offset']) path=fs.to_unix_path(item['path']), offset=item['offset'])
for item in configuration.get("flash_extra_images") for item in configuration.get("flash_extra_images")
] ]
mon_cmds.append('monitor program_esp32 "{%s.bin}" 0x10000 verify' % mon_cmds.append('monitor program_esp32 "{%s.bin}" 0x10000 verify' %
configuration['prog_path'][:-4]) fs.to_unix_path(configuration['prog_path'][:-4]))
return mon_cmds return mon_cmds

View File

@@ -17,6 +17,7 @@ import signal
import click import click
from twisted.internet import protocol # pylint: disable=import-error from twisted.internet import protocol # pylint: disable=import-error
from platformio import fs
from platformio.compat import string_types from platformio.compat import string_types
from platformio.proc import get_pythonexe_path from platformio.proc import get_pythonexe_path
from platformio.project.helpers import get_project_core_dir from platformio.project.helpers import get_project_core_dir
@@ -38,6 +39,11 @@ class BaseProcess(protocol.ProcessProtocol, object):
_patterns = self.COMMON_PATTERNS.copy() _patterns = self.COMMON_PATTERNS.copy()
_patterns.update(patterns or {}) _patterns.update(patterns or {})
for key, value in _patterns.items():
if key.endswith(("_DIR", "_PATH")):
print(13, key)
_patterns[key] = fs.to_unix_path(value)
def _replace(text): def _replace(text):
for key, value in _patterns.items(): for key, value in _patterns.items():
pattern = "$%s" % key pattern = "$%s" % key

View File

@@ -18,7 +18,7 @@ from os.path import isdir, isfile, join
from twisted.internet import error # pylint: disable=import-error from twisted.internet import error # pylint: disable=import-error
from twisted.internet import reactor # pylint: disable=import-error from twisted.internet import reactor # pylint: disable=import-error
from platformio import exception, util from platformio import exception, fs, util
from platformio.commands.debug.process import BaseProcess from platformio.commands.debug.process import BaseProcess
from platformio.proc import where_is_program from platformio.proc import where_is_program
@@ -74,7 +74,7 @@ class DebugServer(BaseProcess):
str_args = " ".join( str_args = " ".join(
[arg if arg.startswith("-") else '"%s"' % arg for arg in args]) [arg if arg.startswith("-") else '"%s"' % arg for arg in args])
self._debug_port = '| "%s" %s' % (server_executable, str_args) self._debug_port = '| "%s" %s' % (server_executable, str_args)
self._debug_port = self._debug_port.replace("\\", "\\\\") self._debug_port = fs.to_unix_path(self._debug_port)
else: else:
env = os.environ.copy() env = os.environ.copy()
# prepend server "lib" folder to LD path # prepend server "lib" folder to LD path