1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-21 10:26:06 +03:00
esp8266/doc/Troubleshooting/stack_dump.rst
M Hightower d3c102e717
Update documentation and arduino debug options (#8837)
* Update documentation

Describe how to improve Exception Decoder results.

Updated build option details.

* Added d-a-v's code. And updated description and debug macro.

* Update doc

Updated platform.txt - positioned -Os such that it can be overridden by `build.opt`.

Add suggestion of using `-Og` which may improve the Decoder's line number correlation
with the problem in the source code.

Untested adjustments to platformio-build.py

* Fixed code formatting

* Fixed example

Previously `-O3` in the example had no effect. It was overridden by later flags.
Reording the `-Os` allowed changing optimization to  work. Somehow this triggered
a new warning "Stream.h:50:7: warning: 'f.Stream::_startMillis' may be used
uninitialized in this function". Replaced `-O3` with `-Og`.

* Proposed "Debug port" menu change
Preserves a pathway for `build.opt` override.

* Update boards.txt.py and docs - WIP

* Improve organization of optimization content.
Use "Debug Optimization" for menu name.
The menu item defines the initial optimization.
platform.txt - optimization parameter can be overridden by build.opt.

* Add fallback value for build.debug_optim to platform.txt

* update text and undo changes to platformio-build.py

* tweak text

* Added ':orphan:' mark to a06-global-build-options.rst

* Update doc. Added link in page index to 'Improving Exception Decoder Results'

* Update text to reference PR#8868 improvements for leaf function.
2023-03-29 11:16:33 +02:00

2.5 KiB

Stack Dumps

Introduction

If the ESP crashes the Exception Cause will be shown and the current stack will be dumped.

Example:

Exception (0): epc1=0x402103f4 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

ctx: sys
sp: 3ffffc10 end: 3fffffb0 offset: 01a0

>>>stack>>>
3ffffdb0:  40223e00 3fff6f50 00000010 60000600
3ffffdc0:  00000001 4021f774 3fffc250 4000050c
3ffffdd0:  400043d5 00000030 00000016 ffffffff
3ffffde0:  400044ab 3fffc718 3ffffed0 08000000
3ffffdf0:  60000200 08000000 00000003 00000000
3ffffe00:  0000ffff 00000001 04000002 003fd000
3ffffe10:  3fff7188 000003fd 3fff2564 00000030
3ffffe20:  40101709 00000008 00000008 00000020
3ffffe30:  c1948db3 394c5e70 7f2060f2 c6ba0c87
3ffffe40:  3fff7058 00000001 40238d41 3fff6ff0
3ffffe50:  3fff6f50 00000010 60000600 00000020
3ffffe60:  402301a8 3fff7098 3fff7014 40238c77
3ffffe70:  4022fb6c 40230ebe 3fff1a5b 3fff6f00
3ffffe80:  3ffffec8 00000010 40231061 3fff0f90
3ffffe90:  3fff6848 3ffed0c0 60000600 3fff6ae0
3ffffea0:  3fff0f90 3fff0f90 3fff6848 3fff6d40
3ffffeb0:  3fff28e8 40101233 d634fe1a fffeffff
3ffffec0:  00000001 00000000 4022d5d6 3fff6848
3ffffed0:  00000002 4000410f 3fff2394 3fff6848
3ffffee0:  3fffc718 40004a3c 000003fd 3fff7188
3ffffef0:  3fffc718 40101510 00000378 3fff1a5b
3fffff00:  000003fd 4021d2e7 00000378 000003ff
3fffff10:  00001000 4021d37d 3fff2564 000003ff
3fffff20:  000003fd 60000600 003fd000 3fff2564
3fffff30:  ffffff00 55aa55aa 00000312 0000001c
3fffff40:  0000001c 0000008a 0000006d 000003ff
3fffff50:  4021d224 3ffecf90 00000000 3ffed0c0
3fffff60:  00000001 4021c2e9 00000003 3fff1238
3fffff70:  4021c071 3ffecf84 3ffecf30 0026a2b0
3fffff80:  4021c0b6 3fffdab0 00000000 3fffdcb0
3fffff90:  3ffecf40 3fffdab0 00000000 3fffdcc0
3fffffa0:  40000f49 40000f49 3fffdab0 40000f49
<<<stack<<<

The first number after Exception gives the cause of the reset. a full list of all causes can be found here the hex after are the stack dump.

Decode

It's possible to decode the Stack to readable information. You can get a copy and read about the Esp Exception Decoder tool.

For a troubleshooting example using the Exception Decoder Tool, read FAQ: My ESP Crashes.

ESP_Exception_Decoderp.png
ESP Exception Decoder