how to automatically identify errors in the output of checkcode

Hi,
my project comprises thousands of matlab functions, some of them created automatically... I need a way to check that there is no error in any of them... obviosuly without having to open them one by one!
Unfortunately, the structure created by mlint (now checkcode) does not output explicitely which entries represent errors and which warnings.
The only apparent way to achieve what I want is with the .id field that details the code of each of the entry of the structure, but I do not know where they have been defined... is there any documentation of that?

Answers (2)

You can refer to the below documentation link on how to use “checkcode” function to find possible errors :

1 Comment

I checked, and I am still not able to find an answer to my question. The function "checkcode" outputs a wide report, without distinguishing between suggestions, warnings and downright errors... or did I skip something?

Sign in to comment.

Generally speaking, a Code Analyzer red message (error) will prevent the code from executing.
So if you have tests for the large number of functions that make up your project, running those tests should detect Code Analyzer red messages.

5 Comments

not very satisfying. That would be an enormous amount of work to find an information that could easily be provided by Matlab...
Suppose you had a function:
function y = multiply(a, b)
y = a+b;
end
That's perfectly legal code to write. Code Analyzer will not flag anything about that function. But logically that function is completely wrong. The only automated way to detect that logical error in the code is to run it and check the answers the function returns, and one way to do that (which will also detect red Code Analyzer errors) is to write tests.
true, but that's not what I mean by "information that could easily be provided by Matlab". I just want exactly the same information that has the editor when it marks some problems in red and some others in orange. This information is obviously ready and available, a pity that it cannot be provided to the user through checkcode, forcing us to effort-intensive workarounds.
I was looking for this same thing, and while I agree that writing tests will capture this as well, I have some functions that use GUI elements and just don't run nicely in my CI system. For those, I would like to check this using checkcode.
Here is what I did though:
  1. Create a code analyzer settings file using the menu under Preferences -> Code Analyzer
  2. I used the filters to turn everything off (disable)
  3. I then filtered to just errors and set them to on (enable)
  4. I saved that as a settings file
  5. Call checkcode using the -config option: checkcode('myfunc','-config=onlyErrors.txt')
thanks Matt! Good idea, I'll try this.

Sign in to comment.

Asked:

on 1 Oct 2019

Commented:

on 18 Mar 2021

Community Treasure Hunt

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

Start Hunting!