wdt_reset(); watchdog not working

My simply Code is
#include <avr/wdt.h>

void setup() {

wdt_disable();

Serial.begin(9600);
}

void loop() {
Serial.println(“Start”);
wdt_enable(WDTO_4S);

delay(1000);
wdt_reset();
delay(6000);
Serial.println(“5555”);
delay(500);
}
1.Why did arduino self reset? (My result is only Start)
2.Why watchdog did not reset?

Thank you.

Please use code tags (</> button on the toolbar) when you post code or warning/error messages. The reason is that the forum software can interpret parts of your code as markup, leading to confusion, wasted time, and a reduced chance for you to get help with your problem. This will also make it easier to read your code and to copy it to the IDE or editor. If your browser doesn’t show the posting toolbar then you can just manually add the code tags:
[code]``[color=blue]// your code is here[/color]``[/code]
Using code tags and other important information is explained in the How to use this forum post. Please read it.

Please always do a Tools > Auto Format on your code before posting it. This will make it easier for you to spot bugs and make it easier for us to read. If you’re using the Arduino Web Editor you will not have access to this useful tool but it’s still unacceptable to post poorly formatted code. I recommend you to use the standard IDE instead.

wonnachai:
1.Why did arduino self reset? (My result is only Start)

That’s what happens when the watchdog times out.

wonnachai:
2.Why watchdog did not reset?

It did, then you had a 6 second delay that was longer than the 4 second watchdog timeout you set.