Serial.print("!!!"); hangs the uploader?

Got this rather bizarre error today- I was trying to make an error message stand out by adding "!!!" to the end of it, and when I uploaded it to the board the statusbar got to about 90% and never finished. I tracked down the problem to the "!!!" and was able to replicate it with this small program, which also refuses to load:

void setup ()
{
 Serial.begin (9600); 
}

void loop ()
{
  Serial.print("!!!");
  delay(1000);
}

Outputs:
Uploading...
Binary sketch size: 3622 bytes (of a 258048 byte maximum)

This isn't so much a problem for me as it is a curiosity issue- anyone know why this is happening?

Well documented - search the forum
Why would you ever need more than one exclamation mark?

AWOL:
Well documented - search the forum
Why would you ever need more than one exclamation mark?

I'd call it a bug.

It is a bug, and a well documented one.
But, apart from ellipsis, I can't think of a good reason for three consecutive punctuation marks.

AWOL:
It is a bug, and a well documented one.

I guess that depends what you mean by 'well documented'. I've never heard of it 'til now.

AWOL:
But, apart from ellipsis, I can't think of a good reason for three consecutive punctuation marks.

No reason NOT to, though, unless you were already aware of the bug.

No a well documented Bug is called a Feature, That particular Feature prevents you from making a minor grammatical error and thus impressing your best mates with your clear lack of erudition.

Doc

It's very well documented in the sense that it comes up in the forum from time to time. The problem is that search engines like Google ignore punctuation marks. So how does one search for and find reference to this issue?

AWOL:
But, apart from ellipsis, I can't think of a good reason for three consecutive punctuation marks.

People use it for extra expression (e.g. FIRE!!!).
This bug only occurs on the Arduino Mega.
Does anyone know exactly what causes the error? Everyone just says it is a well documented bug.

dkl65:
Does anyone know exactly what causes the error? Everyone just says it is a well documented bug.

Well, let me go to the forum search and search for "!!!" to find this well documented bug.

Okay, let's try the phrase "arduino mega !!!" in Google. That'll work!
Huh. No wonder people keep posting about this "well documented" feature.

As I recall, it was actually a feature of the early bootloader. It looked for the string "!!!" for reason.

AWOL:
But, apart from ellipsis, I can't think of a good reason for three consecutive punctuation marks.

What's that got to do with the bug? I can't think of a good reason why men wear ties.

AWOL:
Why would you ever need more than one exclamation mark?

Well, the OP says:

dlworrell:
I was trying to make an error message stand out by adding "!!!" to the end of it...

I do this sort of thing all the time (though I add annotations to the beginning of log lines, not the end.) I use ! usually because I might be searching logs with a text editor that treats things like * special, and I want something quick and dirty that stands out.

This bug violates the principle of least surprise, which is why we are all having this conversation -- someone got surprised again, and then further surprised that others were surprised that he or she didn't know about the surprise.

I've heard !!! starts the usb to serial chip's debugger.

This could go in the post at the top of the forum. Or maybe have a separate one for "Known bugs." Or have it point to the list of known bugs on the google code page.

WizenedEE:
I've heard !!! starts the usb to serial chip's debugger.

Okay; so "!!!" it starts the debugger on some Megas. Anyone know the serial chip debugger initializer for Arduino UNO?

P.S. Sent from netbook in a hotel in Grove City, PA. Happy 145th birthday, Canada! Too bad I can't be in Canada to celebrate it!

http://code.google.com/p/arduino/issues/detail?id=392
The bug database can be interesting reading!

It's the 2560 bootloader, which has a "monitor mode" entered with the !!! Sequence.
Not the serial chip code. UNO doesn't have such a monitor and does not have a version of this bug.