mirror of
https://github.com/espressif/esp-idf.git
synced 2026-05-04 20:05:25 +02:00
Merge branch 'feature/easy_debug' into 'master'
idf.py: add debug related targets Closes IDF-890 See merge request espressif/esp-idf!5602
This commit is contained in:
@@ -2,8 +2,9 @@ Using Debugger
|
||||
--------------
|
||||
:link_to_translation:`zh_CN:[中文]`
|
||||
|
||||
This section covers configuration and running debugger either from :ref:`jtag-debugging-using-debugger-eclipse`
|
||||
or :ref:`jtag-debugging-using-debugger-command-line`. It is recommended to first check if debugger works from :ref:`jtag-debugging-using-debugger-command-line` and then move to using Eclipse.
|
||||
This section covers configuration and running debugger from :ref:`jtag-debugging-using-debugger-eclipse`
|
||||
or from :ref:`jtag-debugging-using-debugger-command-line` or using :ref:`jtag-debugging-with-idf-py`.
|
||||
It is recommended to first check if debugger works from :ref:`jtag-debugging-using-debugger-command-line` and then move to using Eclipse.
|
||||
|
||||
|
||||
.. _jtag-debugging-using-debugger-eclipse:
|
||||
@@ -188,3 +189,54 @@ Command Line
|
||||
Note the third line from bottom that shows debugger halting at breakpoint established in ``gdbinit`` file at function ``app_main()``. Since the processor is halted, the LED should not be blinking. If this is what you see as well, you are ready to start debugging.
|
||||
|
||||
If you are not quite sure how to use GDB, check :ref:`jtag-debugging-examples-command-line` example debugging session in section :ref:`jtag-debugging-examples`.
|
||||
|
||||
|
||||
.. _jtag-debugging-with-idf-py:
|
||||
|
||||
Using idf.py debug targets
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
It is also possible to execute the described debugging tools conveniently from ``idf.py``. These commands are supported:
|
||||
|
||||
1. ``idf.py openocd``
|
||||
|
||||
Runs OpenOCD in a console with configuration defined in the environment or via command line.
|
||||
It uses default script directory defined as ``OPENOCD_SCRIPTS`` environmental variable, which is automatically added
|
||||
from an Export script (``export.sh`` or ``export.bat``). It is possible to override the script location
|
||||
using command line argument ``--openocd-scripts``.
|
||||
|
||||
As for the JTAG configuration of the current board, please use the environmental variable ``OPENOCD_COMMANDS``
|
||||
or ``--openocd-commands`` command line argument. If none of the above is defined,
|
||||
OpenOCD is started with ``-f board/esp32-wrover-kit-3.3v.cfg`` board definition.
|
||||
|
||||
|
||||
2. ``idf.py gdb``
|
||||
|
||||
Starts the gdb the same way as the :ref:`jtag-debugging-using-debugger-command-line`, but generates the initial gdb scripts
|
||||
referring to the current project elf file.
|
||||
|
||||
|
||||
3. ``idf.py gdbtui``
|
||||
|
||||
The same as `2`, but starts the gdb with ``tui`` argument allowing very simple source code view.
|
||||
|
||||
|
||||
4. ``idf.py gdbgui``
|
||||
|
||||
Starts `gdbgui <https://www.gdbgui.com>`_ debugger frontend enabling out-of-the-box debugging in a browser window.
|
||||
|
||||
|
||||
It is possible to combine these debugging actions on a single command line allowing 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.
|
||||
|
||||
An example of a very useful combination is
|
||||
|
||||
::
|
||||
|
||||
idf.py openocd gdbgui monitor
|
||||
|
||||
.. highlight:: none
|
||||
|
||||
The above command runs OpenOCD in the background, starts `gdbgui <https://www.gdbgui.com>`_ to open a browser window
|
||||
with active debugger frontend and opens a serial monitor in the active console.
|
||||
|
||||
Reference in New Issue
Block a user