Skip to content

Commit 5799f55

Browse files
committed
Merge branch 'break/drop_gdbgui' into 'master'
Tools: Drop official support for gdbgui Closes IDF-4627 See merge request espressif/esp-idf!39326
2 parents af69042 + 3efb46e commit 5799f55

File tree

10 files changed

+172
-113
lines changed

10 files changed

+172
-113
lines changed

docs/en/api-guides/jtag-debugging/using-debugger.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ It is also possible to execute the described debugging tools conveniently from `
232232

233233
4. ``idf.py gdbgui``
234234

235-
Starts `gdbgui <https://www.gdbgui.com>`_ debugger frontend enabling out-of-the-box debugging in a browser window. To enable this option, run the install script with the "--enable-gdbgui" argument, e.g., ``install.sh --enable-gdbgui``.
235+
Starts `gdbgui <https://www.gdbgui.com>`_ debugger frontend, which enables out-of-the-box debugging in a browser window. To enable this option, follow the `installation instructions <https://www.gdbgui.com/installation/>`_ to set up the tool using the ``pipx`` method. For system dependencies, restrictions, and other limitations, please refer to the installation page and the `issue tracker <https://github.com/cs01/gdbgui/issues>`_.
236236

237237

238238
You can combine these debugging actions on a single command line, allowing for convenient setup of blocking and non-blocking actions in one step. ``idf.py`` implements a simple logic to move the background actions (such as openocd) to the beginning and the interactive ones (such as gdb, monitor) to the end of the action list.

docs/en/migration-guides/release-6.x/6.0/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ Migration from 5.5 to 6.0
77
:maxdepth: 1
88

99
peripherals
10+
tools
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
Tools
2+
=====
3+
4+
:link_to_translation:`zh_CN:[中文]`
5+
6+
GDBGUI installation
7+
-------------------
8+
9+
The support for the ``--enable-gdbgui`` argument has been removed from the install scripts and `gdbgui <https://www.gdbgui.com>`_ cannot be installed this way anymore. Please use the ``pipx`` method from the `gdbgui installation guide <https://www.gdbgui.com/installation/>`_ in order to set up this tool.
10+
11+
Depending on your operating system and Python version, you may need to consult the `list of known issues <https://github.com/cs01/gdbgui/issues>`_.
12+
13+
For example, `Python 3.13 is not supported <https://github.com/cs01/gdbgui/issues/494>`_ on any operating systems at the moment.
14+
15+
The Windows operating system is not supported since gdbgui version 0.14. Because of the existence of other issues, you will need Python 3.10 with some specific versions of the dependencies. The last know working gdbgui and dependency versions can be installed with the following command:
16+
17+
```bash
18+
pipx install "gdbgui==0.13.2.0" "pygdbmi<=0.9.0.2" "python-socketio<5" "jinja2<3.1" "itsdangerous<2.1"
19+
```
20+
21+
On Linux or MacOS, you can use Python 3.11 or 3.12 and gdbgui version 0.15.2.0.
22+
23+
Please be aware that these recommendations may change over time and for an up-to-date list of issues refer to `the official issue tracker <https://github.com/cs01/gdbgui/issues>`_.
24+
25+
We recommend to use ``idf.py gdb`` instead of ``idf.py gdbgui``, or debug in Eclipse/Vscode if you encounter an issue with the installation.

docs/zh_CN/api-guides/jtag-debugging/using-debugger.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@
232232

233233
4. ``idf.py gdbgui``
234234

235-
启动 `gdbgui <https://www.gdbgui.com>`_,在浏览器中打开调试器的前端界面。请在运行安装脚本时添加 "--enable-gdbgui" 参数,即运行 ``install.sh --enable-gdbgui``,从而确保支持 ``gdbgui`` 选项
235+
启动 `gdbgui <https://www.gdbgui.com>`_,在浏览器中打开调试器的前端界面。要启用此选项,请参照 `安装说明 <https://www.gdbgui.com/installation/>`_,使用 ``pipx`` 方法设置该工具。关于系统依赖项、限制及其他注意事项,请参考安装页面和 `问题追踪 <https://github.com/cs01/gdbgui/issues>`_
236236

237237

238238
上述这些命令也可以合并到一起使用,``idf.py`` 会自动将后台进程(比如 openocd)最先运行,交互式进程(比如 GDB,monitor)最后运行。

docs/zh_CN/migration-guides/release-6.x/6.0/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@
77
:maxdepth: 1
88

99
peripherals
10+
tools
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.. include:: ../../../../en/migration-guides/release-6.x/6.0/tools.rst

tools/idf_py_actions/debug_ext.py

Lines changed: 132 additions & 83 deletions
Large diffs are not rendered by default.

tools/requirements.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,6 @@
77
"optional": false,
88
"requirement_path": "tools/requirements/requirements.core.txt"
99
},
10-
{
11-
"name": "gdbgui",
12-
"description": "Packages for supporting debugging from web browser",
13-
"optional": true,
14-
"requirement_path": "tools/requirements/requirements.gdbgui.txt"
15-
},
1610
{
1711
"name": "pytest",
1812
"description": "Packages for CI with pytest",

tools/requirements/requirements.gdbgui.txt

Lines changed: 0 additions & 12 deletions
This file was deleted.

tools/test_idf_tools/test_idf_tools_python_env.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
sys.path.append('..')
2424
import idf_tools
2525

26-
IDF_PATH = os.environ.get('IDF_PATH', '../..')
26+
IDF_PATH = os.path.abspath(os.environ.get('IDF_PATH', '../..'))
2727
TOOLS_DIR = os.environ.get('IDF_TOOLS_PATH') or os.path.expanduser(idf_tools.IDF_TOOLS_PATH_DEFAULT)
2828
PYTHON_DIR = os.path.join(TOOLS_DIR, 'python_env')
2929
PYTHON_DIR_BACKUP = tempfile.mkdtemp()
@@ -32,7 +32,7 @@
3232
# Python 3.8 and 3.9 has a different error message that does not include the "No package metadata was found for" part
3333
REQ_MISSING = r'Package was not found and is required by the application: (No package metadata was found for )?{}'
3434
REQ_CORE = '- {}'.format(os.path.join(IDF_PATH, 'tools', 'requirements', 'requirements.core.txt'))
35-
REQ_GDBGUI = '- {}'.format(os.path.join(IDF_PATH, 'tools', 'requirements', 'requirements.gdbgui.txt'))
35+
REQ_DOCS = '- {}'.format(os.path.join(IDF_PATH, 'tools', 'requirements', 'requirements.docs.txt'))
3636
CONSTR = 'Constraint file: {}'.format(os.path.join(TOOLS_DIR, 'espidf.constraints'))
3737

3838
# Set default global paths for idf_tools. If some test needs to
@@ -191,29 +191,29 @@ def test_default_arguments(self): # type: () -> None
191191
output = self.run_idf_tools(['install-python-env'])
192192
self.assertIn(CONSTR, output)
193193
self.assertIn(REQ_CORE, output)
194-
self.assertNotIn(REQ_GDBGUI, output)
194+
self.assertNotIn(REQ_DOCS, output)
195195

196196
output = self.run_idf_tools(['check-python-dependencies'])
197197
self.assertIn(REQ_SATISFIED, output)
198198

199199
def test_opt_argument(self): # type: () -> None
200-
output = self.run_idf_tools(['install-python-env', '--features', 'gdbgui'])
200+
output = self.run_idf_tools(['install-python-env', '--features', 'docs'])
201201
self.assertIn(CONSTR, output)
202202
self.assertIn(REQ_CORE, output)
203-
self.assertIn(REQ_GDBGUI, output)
203+
self.assertIn(REQ_DOCS, output)
204204

205205
output = self.run_idf_tools(['install-python-env'])
206-
# The gdbgui should be installed as well because the feature is is stored in the JSON file
206+
# The docs should be installed as well because the feature is is stored in the JSON file
207207
self.assertIn(CONSTR, output)
208208
self.assertIn(REQ_CORE, output)
209-
self.assertIn(REQ_GDBGUI, output)
209+
self.assertIn(REQ_DOCS, output)
210210

211211
# Argument that begins with '-' can't stand alone to be parsed as value
212-
output = self.run_idf_tools(['install-python-env', '--features=-gdbgui'])
213-
# After removing the gdbgui should not be present
212+
output = self.run_idf_tools(['install-python-env', '--features=-docs'])
213+
# After removing the docs should not be present
214214
self.assertIn(CONSTR, output)
215215
self.assertIn(REQ_CORE, output)
216-
self.assertNotIn(REQ_GDBGUI, output)
216+
self.assertNotIn(REQ_DOCS, output)
217217

218218
def test_no_constraints(self): # type: () -> None
219219
output = self.run_idf_tools(['install-python-env', '--no-constraints'])

0 commit comments

Comments
 (0)