doc command doesn't work in try/catch blocks

5 views (last 30 days)
Hello,
I'm using the try/catch option. When I'm debugging the program and stop at a breakpoint, writing ' doc "function name" ' in the matlab command window causes a crash.
Is it a known bug?
Any way to resolve this issue?
Thanks,
Alex
[Edit: Moved more information from the answers - AU]
After further testing, it seems that the problem is somehow related to the function, but not its name or location. For now I wasn't able to reproduce the bug with other functions.
Below is the error I get:
??? Error: Unexpected MATLAB operator.
Error in ==> isClassMFile at 2 whichComment = regexp(evalc(helpUtils.makeDualCommand('which', fullPath)), '%.*', 'match', 'once');
Error in ==> splitClassInformation>resolveUnaryClass at 423 [isClassMFile, className] = helpUtils.isClassMFile(whichTopic);
Error in ==> splitClassInformation>unaryClassInformation at 401 [classInfo, whichTopic] = resolveUnaryClass(className, justChecking);
Error in ==> splitClassInformation>innerResolveImplicitPath at 128 [classInfo, whichTopic] = unaryClassInformation(objectParts, justChecking);
Error in ==> splitClassInformation>resolveImplicitPath at 104 [classInfo, whichTopic] = innerResolveImplicitPath(topic, implementor, justChecking);
Error in ==> splitClassInformation>innerSplitClassInformation at 44 [classInfo, whichTopic] = resolveImplicitPath(topic, implementor, justChecking);
Error in ==> splitClassInformation at 26 [classInfo, whichTopic, malformed] = innerSplitClassInformation(topic, implementor, justChecking, topicIsDotM);
Error in ==> doc>getClassInformation at 119 classInfo = helpUtils.splitClassInformation(topic, '', true, false);
Error in ==> doc at 88 [docTopic, isMethodOrProp] = getClassInformation(topic);
inside the function 'isClassMFile', first row, the function 'evalc' fails.
the output of: helpUtils.makeDualCommand('which', fullPath) is the line: which('C:\Program Files\MATLAB\R2010a\toolbox\matlab\iofun\sendmail.m')
and remarkably, when the path is the one for the function that causes problem, the output is: which(C:\Program Files\MATLAB\R2010a\toolbox\matlab\iofun\sendmail.m ) - the last comma is on a different line.
Any comment is welcome, Alex
  1 Comment
Oleg Komarov
Oleg Komarov on 11 Jul 2011
http://www.mathworks.com/matlabcentral/answers/6200-tutorial-how-to-ask-a-question-on-answers-and-get-a-fast-answer

Sign in to comment.

Accepted Answer

Alex Berkovich
Alex Berkovich on 12 Jul 2011
'which' function had a problem because one of the files had a name same as an internal Matlab function.

More Answers (3)

Jan
Jan on 11 Jul 2011
I cannot confirm this behaviour in Matlab 2009a 32bit, WinXP. Please post the Matlab and OS version you are using. And post an exact copy of the used command - I assume the double quotes are inserted for the posting only. And finally explain, what "crash" means, please. Di you get an error message, a wrong result or a crash dump?
  2 Comments
Paulo Silva
Paulo Silva on 11 Jul 2011
Jan my code doesn't work, is it a known bug? :)
Jan
Jan on 11 Jul 2011
@Paulo: Yes, it is a none bug. But please define "code" and "my" with more details.

Sign in to comment.


Sean de Wolski
Sean de Wolski on 11 Jul 2011
try
error
catch
doc randi
end
works for for me, R2009b Mac64bit.

Walter Roberson
Walter Roberson on 11 Jul 2011
I wonder... what happens if you attempt to "doc" a .m file that has syntax errors? I don't think I've ever tried that.
  3 Comments
Alex Berkovich
Alex Berkovich on 12 Jul 2011
Do you know what can cause 'which' to be overloaded? thanks.
Friedrich
Friedrich on 12 Jul 2011
You can overload "which" when you write your own function called "which" which is on the MATLAB path. Maybe try this is ML:
>> which -all which
built-in (C:\Program Files\MATLAB\R2011a\toolbox\matlab\general\which)
C:\Program Files\MATLAB\R2011a\toolbox\simulink\simulink\@dependencies\which.p % dependencies method
>>

Sign in to comment.

Categories

Find more on Programming Utilities in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!