mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 01:57:13 +02:00
Introduced the capability to launch the debug server in a separate process // Resolve #4722
This commit is contained in:
@ -21,6 +21,7 @@ test-driven methodologies, and modern toolchains for unrivaled success.
|
|||||||
~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
* Added support for Python 3.12
|
* Added support for Python 3.12
|
||||||
|
* Introduced the capability to launch the debug server in a separate process (`issue #4722 <https://github.com/platformio/platformio-core/issues/4722>`_)
|
||||||
* Introduced a warning during the verification of MCU maximum RAM usage, signaling when the allocated RAM surpasses 100% (`issue #4791 <https://github.com/platformio/platformio-core/issues/4791>`_)
|
* Introduced a warning during the verification of MCU maximum RAM usage, signaling when the allocated RAM surpasses 100% (`issue #4791 <https://github.com/platformio/platformio-core/issues/4791>`_)
|
||||||
* Drastically enhanced the speed of project building when operating in verbose mode (`issue #4783 <https://github.com/platformio/platformio-core/issues/4783>`_)
|
* Drastically enhanced the speed of project building when operating in verbose mode (`issue #4783 <https://github.com/platformio/platformio-core/issues/4783>`_)
|
||||||
* Upgraded the build engine to the latest version of SCons (4.6.0) to improve build performance, reliability, and compatibility with other tools and systems (`release notes <https://github.com/SCons/scons/releases/tag/4.6.0>`__)
|
* Upgraded the build engine to the latest version of SCons (4.6.0) to improve build performance, reliability, and compatibility with other tools and systems (`release notes <https://github.com/SCons/scons/releases/tag/4.6.0>`__)
|
||||||
|
@ -24,7 +24,9 @@ from platformio.project.options import ProjectOptions
|
|||||||
|
|
||||||
|
|
||||||
class DebugConfigBase: # pylint: disable=too-many-instance-attributes
|
class DebugConfigBase: # pylint: disable=too-many-instance-attributes
|
||||||
def __init__(self, platform, project_config, env_name, port=None):
|
DEFAULT_PORT = None
|
||||||
|
|
||||||
|
def __init__(self, platform, project_config, env_name):
|
||||||
self.platform = platform
|
self.platform = platform
|
||||||
self.project_config = project_config
|
self.project_config = project_config
|
||||||
self.env_name = env_name
|
self.env_name = env_name
|
||||||
@ -48,7 +50,6 @@ class DebugConfigBase: # pylint: disable=too-many-instance-attributes
|
|||||||
self._load_cmds = None
|
self._load_cmds = None
|
||||||
self._port = None
|
self._port = None
|
||||||
|
|
||||||
self.port = port
|
|
||||||
self.server = self._configure_server()
|
self.server = self._configure_server()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -120,8 +121,10 @@ class DebugConfigBase: # pylint: disable=too-many-instance-attributes
|
|||||||
@property
|
@property
|
||||||
def port(self):
|
def port(self):
|
||||||
return (
|
return (
|
||||||
self.env_options.get("debug_port", self.tool_settings.get("port"))
|
self._port
|
||||||
or self._port
|
or self.env_options.get("debug_port")
|
||||||
|
or self.tool_settings.get("port")
|
||||||
|
or self.DEFAULT_PORT
|
||||||
)
|
)
|
||||||
|
|
||||||
@port.setter
|
@port.setter
|
||||||
|
@ -16,6 +16,7 @@ from platformio.debug.config.base import DebugConfigBase
|
|||||||
|
|
||||||
|
|
||||||
class GenericDebugConfig(DebugConfigBase):
|
class GenericDebugConfig(DebugConfigBase):
|
||||||
|
DEFAULT_PORT = ":3333"
|
||||||
GDB_INIT_SCRIPT = """
|
GDB_INIT_SCRIPT = """
|
||||||
define pio_reset_halt_target
|
define pio_reset_halt_target
|
||||||
monitor reset halt
|
monitor reset halt
|
||||||
@ -31,8 +32,3 @@ $LOAD_CMDS
|
|||||||
pio_reset_halt_target
|
pio_reset_halt_target
|
||||||
$INIT_BREAK
|
$INIT_BREAK
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
if "port" not in kwargs:
|
|
||||||
kwargs["port"] = ":3333"
|
|
||||||
super().__init__(*args, **kwargs)
|
|
||||||
|
@ -16,6 +16,7 @@ from platformio.debug.config.base import DebugConfigBase
|
|||||||
|
|
||||||
|
|
||||||
class JlinkDebugConfig(DebugConfigBase):
|
class JlinkDebugConfig(DebugConfigBase):
|
||||||
|
DEFAULT_PORT = ":2331"
|
||||||
GDB_INIT_SCRIPT = """
|
GDB_INIT_SCRIPT = """
|
||||||
define pio_reset_halt_target
|
define pio_reset_halt_target
|
||||||
monitor reset
|
monitor reset
|
||||||
@ -36,11 +37,6 @@ $LOAD_CMDS
|
|||||||
$INIT_BREAK
|
$INIT_BREAK
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
if "port" not in kwargs:
|
|
||||||
kwargs["port"] = ":2331"
|
|
||||||
super().__init__(*args, **kwargs)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def server_ready_pattern(self):
|
def server_ready_pattern(self):
|
||||||
return super().server_ready_pattern or ("Waiting for GDB connection")
|
return super().server_ready_pattern or ("Waiting for GDB connection")
|
||||||
|
@ -16,6 +16,7 @@ from platformio.debug.config.base import DebugConfigBase
|
|||||||
|
|
||||||
|
|
||||||
class MspdebugDebugConfig(DebugConfigBase):
|
class MspdebugDebugConfig(DebugConfigBase):
|
||||||
|
DEFAULT_PORT = ":2000"
|
||||||
GDB_INIT_SCRIPT = """
|
GDB_INIT_SCRIPT = """
|
||||||
define pio_reset_halt_target
|
define pio_reset_halt_target
|
||||||
end
|
end
|
||||||
@ -29,8 +30,3 @@ $LOAD_CMDS
|
|||||||
pio_reset_halt_target
|
pio_reset_halt_target
|
||||||
$INIT_BREAK
|
$INIT_BREAK
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
if "port" not in kwargs:
|
|
||||||
kwargs["port"] = ":2000"
|
|
||||||
super().__init__(*args, **kwargs)
|
|
||||||
|
@ -16,6 +16,7 @@ from platformio.debug.config.base import DebugConfigBase
|
|||||||
|
|
||||||
|
|
||||||
class QemuDebugConfig(DebugConfigBase):
|
class QemuDebugConfig(DebugConfigBase):
|
||||||
|
DEFAULT_PORT = ":1234"
|
||||||
GDB_INIT_SCRIPT = """
|
GDB_INIT_SCRIPT = """
|
||||||
define pio_reset_halt_target
|
define pio_reset_halt_target
|
||||||
monitor system_reset
|
monitor system_reset
|
||||||
@ -30,8 +31,3 @@ $LOAD_CMDS
|
|||||||
pio_reset_halt_target
|
pio_reset_halt_target
|
||||||
$INIT_BREAK
|
$INIT_BREAK
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
if "port" not in kwargs:
|
|
||||||
kwargs["port"] = ":1234"
|
|
||||||
super().__init__(*args, **kwargs)
|
|
||||||
|
@ -16,6 +16,7 @@ from platformio.debug.config.base import DebugConfigBase
|
|||||||
|
|
||||||
|
|
||||||
class RenodeDebugConfig(DebugConfigBase):
|
class RenodeDebugConfig(DebugConfigBase):
|
||||||
|
DEFAULT_PORT = ":3333"
|
||||||
GDB_INIT_SCRIPT = """
|
GDB_INIT_SCRIPT = """
|
||||||
define pio_reset_halt_target
|
define pio_reset_halt_target
|
||||||
monitor machine Reset
|
monitor machine Reset
|
||||||
@ -33,11 +34,6 @@ $INIT_BREAK
|
|||||||
monitor start
|
monitor start
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
if "port" not in kwargs:
|
|
||||||
kwargs["port"] = ":3333"
|
|
||||||
super().__init__(*args, **kwargs)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def server_ready_pattern(self):
|
def server_ready_pattern(self):
|
||||||
return super().server_ready_pattern or (
|
return super().server_ready_pattern or (
|
||||||
|
@ -62,7 +62,9 @@ class DebugServerProcess(DebugBaseProcess):
|
|||||||
|
|
||||||
openocd_pipe_allowed = all(
|
openocd_pipe_allowed = all(
|
||||||
[
|
[
|
||||||
not self.debug_config.env_options.get("debug_port"),
|
not self.debug_config.env_options.get(
|
||||||
|
"debug_port", self.debug_config.tool_settings.get("port")
|
||||||
|
),
|
||||||
"gdb" in self.debug_config.client_executable_path,
|
"gdb" in self.debug_config.client_executable_path,
|
||||||
"openocd" in server_executable,
|
"openocd" in server_executable,
|
||||||
]
|
]
|
||||||
|
Reference in New Issue
Block a user