fix(tools): Print message about GDBGUI being not supported with Python 3.13

This commit is contained in:
Roland Dobai 2024-10-22 13:50:41 +02:00
parent 4f3cfbe297
commit 4460d9fb1b
2 changed files with 14 additions and 4 deletions

View File

@ -408,14 +408,23 @@ def action_extensions(base_actions: Dict, project_path: str) -> Dict:
return args
def _get_gdbgui_version(ctx: Context) -> Tuple[int, ...]:
completed_process = subprocess.run(['gdbgui', '--version'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
captured_output = completed_process.stdout.decode('utf-8', 'ignore')
try:
completed_process = subprocess.run(['gdbgui', '--version'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
subprocess_success = True
captured_output = completed_process.stdout.decode('utf-8', 'ignore')
except FileNotFoundError:
# This is happening at least with Python 3.12 when gdbgui is not installed
subprocess_success = False
if completed_process.returncode != 0:
if not subprocess_success or completed_process.returncode != 0:
if sys.version_info[:2] >= (3, 11) and sys.platform == 'win32':
raise SystemExit('Unfortunately, gdbgui is supported only with Python 3.10 or older. '
'See: https://github.com/espressif/esp-idf/issues/10116. '
'Please use "idf.py gdb" or debug in Eclipse/Vscode instead.')
if sys.version_info[:2] >= (3, 13) and sys.platform != 'win32':
raise SystemExit('Unfortunately, gdbgui is supported only with Python 3.12 or older. '
'See: https://github.com/cs01/gdbgui/issues/494. '
'Please use "idf.py gdb" or debug in Eclipse/Vscode instead.')
raise FatalError('Error starting gdbgui. Please make sure gdbgui has been installed with '
'"install.{sh,bat,ps1,fish} --enable-gdbgui" and can be started. '
f'Error: {captured_output}', ctx)

View File

@ -7,5 +7,6 @@
# gdbgui Python 3.11 issue https://github.com/cs01/gdbgui/issues/447 was fixed in 0.15.2.0. Windows users need an
# older Python to use since new gdbgui versions don't support Windows anymore.
gdbgui; sys_platform != 'win32'
# Python 3.13 is not supported: https://github.com/cs01/gdbgui/issues/494
gdbgui; sys_platform != 'win32' and python_version < "3.13"
gdbgui; sys_platform == 'win32' and python_version < "3.11"