7
$\begingroup$

Can someone confirm/disconfirm this?

  1. Start Mathematica 11, blank notebook, blank init.m
  2. Start the Debugger/make sure it is running. It doesn't seem to matter whether you have the Stack and Breakpoints window open too or not. The "Break at ... []" checkboxes can also be checked or not. But uncheck them for now.
  3. Enter

    a::b

  4. Place the cursor at any of the locations indicated with | in the following:

    a|:|:|b

  5. Press shift enter.

  6. The message

    Message::name: Message name MessageName[a,b] is not of the form symbol::name or symbol::name::language.

    will be displayed.

This seems to have other ways of triggering that seem pretty much random, but this method seems reliable.

Do I maybe have some state left from version 10.4 that causes this or does this happen for other people too?

$Version

"11.0.0 for Microsoft Windows (64-bit) (July 28, 2016)"


(FalafelPita)

According to the documentation, there are two ways to define a message, which I implement as:

ClearAll["sym*"];
(*1*) sym1::name1 = "Message 1.";
(*2*) MessageName[sym2, "name2"] = "Message 2.";

When I evaluate these with debugger OFF, no errors or messages occur.

When I turn debugger ON, restart the kernel, and then evaluate these, the first approach generates an error

"Message name MessageName[sym1,name1] is not of the form symbol::name or symbol::name::language"

but the second approach does not. I'm running

$Version
(*"11.1.0 for Microsoft Windows (64-bit) (March 13, 2017)"*)

Can anyone confirm this? Can anyone see anything incorrect with what I'm doing here? Is this a bug in the debugger?

Maddeningly, the error has been elusively inconsistent. The kernel restart is often NOT necessary to generate the error, but sometimes it has been.

$\endgroup$
4
  • $\begingroup$ This problem exists also in 11.1. $\endgroup$
    – C. E.
    Mar 27, 2017 at 16:56
  • $\begingroup$ I can confirm it for "10.4.1 for Microsoft Windows (64-bit) (April 11, 2016)". No idea what it means, though. $\endgroup$ Aug 4, 2017 at 0:26
  • $\begingroup$ I answered this question in mathematica.stackexchange.com/questions/153041 before discovering this one. I don't know if we have a convention against closing older questions as duplicates of newer ones... $\endgroup$ Aug 4, 2017 at 21:09
  • $\begingroup$ @Itai, you have options: vote to close the unanswered one, transfer your answer to the other one, or (in this case) a mod like me can perform mergers. $\endgroup$ Aug 5, 2017 at 8:29

2 Answers 2

3
$\begingroup$

Weird. I can sometimes reproduce this, but only on Windows, and only some of the time. If I take a cell which suffers from this, copy and paste it, and try again, it will disappear.

This is a bug in the FE. The debug mode is implemented by wrapping pieces of the cell with an extra TagBox so the FE knows where to go when it stops. In the cases where it goes wrong, there is an extra TagBox around "name1", which splits it from the ::. You then end up with MessageName[sym1, name1] instead of MessageName[sym, "name1"] as the input expression.

A possible workaround is to use double quotes around name even when using the short form. I.e., sym1::"name1". This is never wrong, and it makes sure that "name1" gets interpreted as a string even if it is split off from its double colon.

$\endgroup$
1
  • $\begingroup$ Thanks for the workaround. I had similar problems with the issue disappearing sometimes after copy and paste or after switching the debugger on and off. It's difficult to pin down. I sent an email to Wolfram about it today. $\endgroup$ Aug 4, 2017 at 21:17
1
$\begingroup$

Response from Wolfram Technical Support: "It does appear that MessageName is not behaving properly when the Debugger is enabled, and I have forwarded an incident report to our developers with the information you provided. The issue appears to be related to the Debugger changing the specific cell type to Debug. "

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.