Refactor debug GDB initial configurations

This commit is contained in:
Ivan Kravets
2020-03-19 14:49:25 +02:00
parent 475f898222
commit a8606f4efa
3 changed files with 23 additions and 18 deletions

2
docs

Submodule docs updated: 03c5eb487f...e366c5d364

View File

@@ -27,8 +27,9 @@ from twisted.internet import stdio # pylint: disable=import-error
from twisted.internet import task # pylint: disable=import-error from twisted.internet import task # pylint: disable=import-error
from platformio import app, fs, proc, telemetry, util from platformio import app, fs, proc, telemetry, util
from platformio.commands.debug import helpers, initcfgs from platformio.commands.debug import helpers
from platformio.commands.debug.exception import DebugInvalidOptionsError from platformio.commands.debug.exception import DebugInvalidOptionsError
from platformio.commands.debug.initcfgs import get_gdb_init_config
from platformio.commands.debug.process import BaseProcess from platformio.commands.debug.process import BaseProcess
from platformio.commands.debug.server import DebugServer from platformio.commands.debug.server import DebugServer
from platformio.compat import hashlib_encode_data, is_bytes from platformio.compat import hashlib_encode_data, is_bytes
@@ -113,22 +114,8 @@ class GDBClient(BaseProcess): # pylint: disable=too-many-instance-attributes
return gdb_data_dir if isdir(gdb_data_dir) else None return gdb_data_dir if isdir(gdb_data_dir) else None
def generate_pioinit(self, dst_dir, patterns): def generate_pioinit(self, dst_dir, patterns):
server_exe = ( # default GDB init commands depending on debug tool
(self.debug_options.get("server") or {}).get("executable", "").lower() commands = get_gdb_init_config(self.debug_options).split("\n")
)
if "jlink" in server_exe:
cfg = initcfgs.GDB_JLINK_INIT_CONFIG
elif "st-util" in server_exe:
cfg = initcfgs.GDB_STUTIL_INIT_CONFIG
elif "mspdebug" in server_exe:
cfg = initcfgs.GDB_MSPDEBUG_INIT_CONFIG
elif "qemu" in server_exe:
cfg = initcfgs.GDB_QEMU_INIT_CONFIG
elif self.debug_options["require_debug_port"]:
cfg = initcfgs.GDB_BLACKMAGIC_INIT_CONFIG
else:
cfg = initcfgs.GDB_DEFAULT_INIT_CONFIG
commands = cfg.split("\n")
if self.debug_options["init_cmds"]: if self.debug_options["init_cmds"]:
commands = self.debug_options["init_cmds"] commands = self.debug_options["init_cmds"]

View File

@@ -123,3 +123,21 @@ $LOAD_CMDS
pio_reset_halt_target pio_reset_halt_target
$INIT_BREAK $INIT_BREAK
""" """
TOOL_TO_CONFIG = {
"jlink": GDB_JLINK_INIT_CONFIG,
"mspdebug": GDB_MSPDEBUG_INIT_CONFIG,
"qemu": GDB_QEMU_INIT_CONFIG,
"blackmagic": GDB_BLACKMAGIC_INIT_CONFIG,
}
def get_gdb_init_config(debug_options):
tool = debug_options.get("tool")
if tool and tool in TOOL_TO_CONFIG:
return TOOL_TO_CONFIG[tool]
server_exe = (debug_options.get("server") or {}).get("executable", "").lower()
if "st-util" in server_exe:
return GDB_STUTIL_INIT_CONFIG
return GDB_DEFAULT_INIT_CONFIG