Reading Exception Information

ESP.getResetReason()

ESP.getResetInfo()

ESP.getFreeSketchSpace()

ESP.getFreeHeap()

ESP.getHeapFragmentation() 

ESP.getMaxFreeBlockSize()

Simulating Fatal Exceptions


The following code will generate an exception:

void setup()
{
  Serial.begin(115200);
  Serial.println();
  Serial.println("Let's provoke the s/w wdt firing...");
  //
  // provoke an OOM, will be recorded as the last occured one
  char* out_of_memory_failure = (char*)malloc(1000000);
  //
  // wait for s/w wdt in infinite loop below
  while(true);
  //
  Serial.println("This line will not ever print out");
}

void loop(){}



Exceptions

EXC-CAUSE CODECAUSE NAMECAUSE DESCRIPTIONREQUIRED OPTIONEXC-VADDR LOADED
0IllegalInstructionCauseIllegal instructionExceptionNo
1SyscallCauseSYSCALL instructionExceptionNo
2InstructionFetchErrorCauseProcessor internal physical address or data error during instruction fetchExceptionYes
3LoadStoreErrorCauseProcessor internal physical address or data error during load or storeExceptionYes
4Level1InterruptCauseLevel-1 interrupt as indicated by set level-1 bits in the INTERRUPT registerInterruptNo
5AllocaCauseMOVSP instruction, if caller�s registers are not in the register fileWindowed RegisterNo
6IntegerDivideByZeroCauseQUOS, QUOU, REMS, or REMU divisor operand is zero32-bit Integer DivideNo
7Reserved for Tensilica


8PrivilegedCauseAttempt to execute a privileged operation when CRING ? 0MMUNo
9LoadStoreAlignmentCauseLoad or store to an unaligned addressUnaligned ExceptionYes
10..11Reserved for Tensilica


12InstrPIFDataErrorCausePIF data error during instruction fetchProcessor InterfaceYes
13LoadStorePIFDataErrorCauseSynchronous PIF data error during LoadStore accessProcessor InterfaceYes
14InstrPIFAddrErrorCausePIF address error during instruction fetchProcessor InterfaceYes
15LoadStorePIFAddrErrorCauseSynchronous PIF address error during LoadStore accessProcessor InterfaceYes
16InstTLBMissCauseError during Instruction TLB refillMMUYes
17InstTLBMultiHitCauseMultiple instruction TLB entries matchedMMUYes
18InstFetchPrivilegeCauseAn instruction fetch referenced a virtual address at a ring level less than CRINGMMUYes
19Reserved for Tensilica


20InstFetchProhibitedCauseAn instruction fetch referenced a page mapped with an attribute that does not permit instruction fetchRegion Protection or MMUYes
21..23Reserved for Tensilica


24LoadStoreTLBMissCauseError during TLB refill for a load or storeMMUYes
25LoadStoreTLBMultiHitCauseMultiple TLB entries matched for a load or storeMMUYes
26LoadStorePrivilegeCauseA load or store referenced a virtual address at a ring level less than CRINGMMUYes
27Reserved for Tensilica


28LoadProhibitedCauseA load referenced a page mapped with an attribute that does not permit loadsRegion Protection or MMUYes
29StoreProhibitedCauseA store referenced a page mapped with an attribute that does not permit storesRegion Protection or MMUYes
30..31Reserved for Tensilica


32..39CoprocessornDisabledCoprocessor n instruction when cpn disabled. n varies 0..7 as the cause varies 32..39CoprocessorNo
40..63Reserved

Beerfridge Exception

resetInfoFatal exception:4 flag:3 (SOFT_WDT) epc1:0x4000dd11 epc2:0x00000000 epc3:0x00000000 excvaddr:0x00000000 depc:0x00000000
resetReasonSoftware Watchdog


updateWebVars -complete
performTimeSync - start

Soft WDT reset

>>>stack>>>

ctx: cont
sp: 3ffffd40 end: 3fffffc0 offset: 01b0
3ffffef0:  00000050 00000017 3fff1ebc 4021358c
3fffff00:  8ebaaba0 00418937 2a3f724a 3fff2000
3fffff10:  8ebaaba0 00000000 00418937 00000000
3fffff20:  3ffea226 3fff2000 40100e9a 8ebaaba0
3fffff30:  00000007 00000064 00000064 40216c37
3fffff40:  01ef43a4 3fff6acc 3fff6ad4 40206b32
3fffff50:  00000007 00000014 00000007 01ef2f84
3fffff60:  3fffdad0 3fff19c4 3fff6acc 40206c54
3fffff70:  3fffdad0 00000000 3fff18c4 402039fe
3fffff80:  3fffdad0 00000000 3fff18c4 40205240
3fffff90:  00000000 00000000 3fff1fd0 40202a71
3fffffa0:  3fffdad0 00000000 3fff1fd0 40215ec4
3fffffb0:  feefeffe feefeffe 3ffe8594 40101475
<<<stack<<<

 ets Jan  8 2013,rst cause:1, boot mode:(3,7)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v8b899c12
~ld



Reference

ReferenceURL
ESP8266 Fatal exception and Wdt Resethttps://circuits4you.com/2017/12/19/esp8266-fatal-exception-wdt-reset/
ESP8266 Reset Causes and Common Fatal Exception Causeshttps://www.espressif.com/sites/default/files/documentation/esp8266_reset_causes_and_common_fatal_exception_causes_en.pdf
My ESP crashes running some code. How to troubleshoot it?https://arduino-esp8266.readthedocs.io/en/latest/faq/a02-my-esp-crashes.html
Arduino ESP8266/ESP32 Exception Stack Trace Decoder https://github.com/me-no-dev/EspExceptionDecoder#installation
ESP8266 Watchdogs in Arduino ***https://www.sigmdel.ca/michel/program/esp8266/arduino/watchdogs_en.html#ESP8266_HW_WDT