Latest Build – 596
January 16th, 2012| Beta support for Objective-C and Objective-C++ in this build, give us your feedback on it!Build Notes | ![]() |
| Grab it at www.getunderstand.com | |
| Beta support for Objective-C and Objective-C++ in this build, give us your feedback on it!Build Notes | ![]() |
| Grab it at www.getunderstand.com | |
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 – support@scitools.com
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 and the results are saved to the OutputDir.
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
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 support@scitools.com
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.
We are happy to announce we have partnered with Bangalore based Meteonic to better serve our growing customer base in India. Meteonic has years of experience in the static analysis industry and will do an excellent job with Understand. As always, our goal is to provide you the best software value, and the best customer support you have ever experienced. They join our growing list of localized partners who help us provide faster support to our international customer base.
In India? Give them a ring:
Meteonic
www.meteonic.com
Tel: +91-9980070704, +91-080-40874900
moumita@meteonic.com
Usually just identifying the root of your source tree and saying "Analyze" will provide you with a accurate, useful Understand project. Sometimes, however, you need a more accurate representation of your project. Maybe you have large swaths of inactive code that should be enabled, maybe there are grayed out (unresolved) entities that do exist in the source code, or maybe the metrics don’t seem to line up. In cases like this, you will want to use some of the advanced C++ options to fine tune the parse. Here are some things that will improve the parse accuracy.
After printing the Class Dependencies Report (Reports->Dependency->Class Dependencies), we see some headers, with relating numbers that might be confusing as to what exactly they mean. The Dependency Browser can be very useful in seeing the actual dependencies and what they relate to, so I am going to use the Java sample project (getopt) that comes with Understand, the csv file, and the Dependency Browser, to explain the dependencies shown.
The Dependency Browser shows the Class: GetoptDemo on the left side, and it depends on Getopt and LongOpt (shown on the right of the Dependency Browser, and also in the ‘To Class’ column of the csv file). In Getopt there are 13 References, and LongOpt there are 12 References. Both of which are shown in the References column and on the right side of the Dependency Browser.
Understand now fully supports Python access to its underlying database! The new Python API allows you to write your own scripts that can create custom reports, generate your own metrics and in general make Understand deliver exactly what you want it to.
The Python API runs on your 3.x installation of Python, you can grab it from here if you need to install it.
Once you have Python installed you need to tell it where the Understand module is. The easiest way to do that is to add/modify the PYTHONPATH environment variable to include the module location, which is SciTools/bin/<System>/python. Also if you did not add Understand to the Path variable during installation, you will need to add the SciTools/bin/<System> directory to PATH.
Finally, to use the API you will need to put ‘import Understand’ in your script.
The most up-to-date documentation will ship with Understand and can be accessed from the Python Console with:
import understand
help (understand)
A more readable version can be obtained with the python ‘pydoc’ command, which can generate an html version of the documentation. We also try to keep a current version of the Python documentation on the Manuals page.
The documentation includes some samples. More detailed example scripts are shipped with Understand in the SciTools/scripts/python folder.
Happy Scripting!