April 17th, 2012
We’ve added a new option to highlight entities that are defined but not used.
To enable this option go into Tools->Options->Editor->Advanced->Unused Entities
Right now this only works for functions and variables. Let us know if you find it useful, and if there are other entities you want it added for.
April 13th, 2012
We just added a plugin to identify duplicated lines of code. You can grab it at the bottom of our GUI Plugins page.
Update April,26 2012 – I’ve made some extensive changes to this script to improve performance and remove repeated results
April 3rd, 2012
If your team uses cmake to build your projects, you can use it to generate your Understand project. It will add all of the files, setup the correct macro definitions for each file, and setup the correct include files for each file in the project. The advantage of creating an Understand project like this is that the project will be much more accurate than can be created by hand, allowing you to have easier access to all the features of our new strict parser.
In order to use this,
- Navigate to your build directory
- Edit CMakeCache.txt and set CMAKE_EXPORT_COMPILE_COMMANDS to ON.
- Run make again, you’ll see a file called compile_commands.json in your build directory.
- To import into an understand project run the following from the command line (skip the red part for existing projects):
und -db path/to/db.udb create -languages C++ add path/to/build/dir/compile_commands.json settings -c++AddFoundFilesToProject on analyze
Update – On Windows you must use the NMake Makefiles generator. For example:
cmake -G "NMake Makefiles" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
March 9th, 2012
Structure101 has several great tools for analyzing and refactoring your code base, and they have just finished adding the ability to import Understand projects into their tools. You should definitely check it out.
As an extra incentive, they are offering a free license to the first 3 Understand users who demo one of their tools and send an exported image such as the one below of any part of their code or an Open Source project. Just send it to firstname.lastname@example.org and tell them Kevin sent you
To be fair to another great partner, Lattix can also import your Understand projects and is a great tool for organizing and refactoring your code, so give them a look.
January 30th, 2012
Some customers have asked us to provide test files for validating the output of CodeCheck feature. For example, Avionics teams using DO-178B can use it for Tool Qualification. The attached file includes a test suite for each of the CodeCheck Checks, as well as a script that uses our Perl API to automatically run each of the Checks on the corresponding test suite. Before running the script, modify the paths at the beginning to point to the appropriate location, then simply run it from the command line with uperl codecheck_validation.pl
As always, let us know if you run into any questions or problems – email@example.com
Codecheck Validation Tests: DOWNLOAD (Updated Dec 7, 2012)
January 17th, 2012
With build 596 we’ve added support to Understand for Objective-C and Objective-C++, and we would love your feedback on it. This support is added as part of the new strict analyzer, so make sure your project is fully configured to get an accurate parse. Please point Understand and your Objective-C code, and if you run into any problems or questions, shoot us an email – firstname.lastname@example.org
January 11th, 2012
CodeCheck can be set up to run from the command line using Und if that is your preferred work environment, or if you are looking to automate the task. To see all of the options available in Und, run und help. For specific documentation on each option run und help optionName.
To run CodeCheck from the command line, first you will need to export the CodeCheck configuration file from the Understand GUI that has the checks you wish to run selected.
Once that is saved to a file, the command line option is
und codecheck C:\path\to\configuration.ini C:\path\to\OutputDir
Where configuration.ini is my saved configuration file, the results are saved to the OutputDir, and it is running the checks on UnderstandProject.udb.
December 20th, 2011
We moved our main office this week.
We are still in scenic St George, near Zion National Park and less than two hours from Vegas. If you are in the area feel free to stop by and visit us!
Our new address is:
Scientific Toolworks, Inc.
249 East Tabernacle, Suite 200
St George, UT 84770
October 12th, 2011
Many users have asked us in the past if Understand could have better support for Templates and Overloaded functions. We are excited to announce that this is now a reality. Our engineers have worked hard to add a completely new C++ parser to Understand, which is available for Beta testing in build 586.
Our current C++ parser was written with the goal of being able to use fuzzy logic to handle incomplete, non-compiling code gracefully and as accurately as possible. It does a great job at that and will continue to be an important part of our toolset. Unfortunately that same feature caused severe difficulties in parsing templates and recognizing overloaded functions. The new parser is more strict than the old parser and requires a more accurate project definition. If you plan on using it, please follow the instructions from this post to ensure your project is as correct as possible: Improving Project Accuracy (C/C++)
To access the new parser, just check the new checkbox on the Languages screen when creating a new project or in the Project Configuration dialog.
We welcome and appreciate your feedback and comments on this new parser – please send it to us at email@example.com
October 12th, 2011
We’ve made a few changes to how keyboard shortcuts are managed with build 586.
Key Bindings can still be accessed via Tools->Options->Key Bindings but this page now lets you search for key binding, either by name or by the actual keystrokes. This page also has all of the key bindings in one place for easy browsing. The other change was to add a separate page for each Component(Category) of key bindings in the navigation pane.
While these are relatively small changes, we hope they will make life easier for those who rely heavily on keyboard navigation.