
Understand for C++
&
SourcePublisher
C++
Build Change Log
1.4 (Build b444) - 04 May 2008
1.4 (Build b443) - 27 Apr 2008
General
Parsing
- Handle misformed line endings of CR-CR-LF as single lines instead of double lines.
1.4 (Build b442) - 17 Apr 2008
General
1.4 (Build b441) - 07 Apr 2008
1.4 (Build b440) - 31 Mar 2008
1.4 (Build b439) - 31 Mar 2008
1.4 (Build b438) - 24 Mar 2008
Understand
1.4 (Build b437) - 17 Mar 2008
Understand
- Support source files with '[' and ']' characters in the names.
1.4 (Build b436) - 10 Mar 2008
Understand
1.4 (Build b435) - 2 Mar 2008
Understand
- Fix Windows 2000 SP4 crashes introduced in build 432.
- Fix calculation of the CountSemicolon file metric, which could incorrectly include counts from included files in certain circumstances.
- Fix parsing error when a K&R style function's first parameter begins with const
- Add support for environment variable references in include paths in visual studio project files.
1.4 (Build b434) - 25 Feb 2008
Understand
- Remove support for non-standard feature of matching include names with no extensions to files with .h extensions.
1.4 (Build b433) - 18 Feb 2008
General
- Understand 2.0 is now available for public Beta! To download go to http://www.scitools.com and click the beta button on the far right. We would love your feedback.
1.4 (Build b432) - 11 Feb 2008
Perl/C APIs
- Fix uperl Draw() crash on linux
1.4 (Build b431) - 5 Feb 2008
General
- On windows the applications are now installed in the pc-win32 subdirectory instead of pc-win95.
Understand
- Add spacing options for graphs.
Scripts
- Fix $lexeme->inactive() call.
1.4 (Build b430) - 24 Dec 2007
Understand
- Fix calculation of CountClassCoupled. We were previously counting when a nested class accessed one of its own members as a coupling for the parent class.
- Added support for IAR 68HC12 and HCS12 compilers
1.4 (Build b429) - 17 Dec 2007
Understand
- Fixed issue with Control Flowchart where it failed on return statement in a switch case.
- Fixed issue with Control Flowchart to allow C++ goto labels to have spaces before them
Scripts
- Improved speed of api lexer generation for files with a very large number of inactive regions.
1.4 (Build b428) - 10 Dec 2007
Understand
- Changed graph names to Calls or Called By, for all languages
SourcePublisher
- Fixed issue where PDFs were not being generated on linux or Unix.
1.4 (Build b427) - 3 Dec 2007
1.4 (Build b426) - 19 Nov 2007
General
- There will be no build this week due to the Thanksgiving holiday. Thank you.
Understand
- none
- Fixed problem with links from annotated source to the data dictionary where the link would sometimes go to the wrong file (n entities only setting).
- Change hex strings to uppercase in Info Browser and hover text.
- Allow leading/trailing spaces in include/replace text, previously spaces were stripped.
1.4 (Build b425) - 5 Nov 2007
General
- Understand 2.0 is almost ready for Beta, and we are looking for volunteers to help us test it in the last stages of the Alpha. If you are interested, send us an email at support@scitools.com.
Understand
- Use dec/hex hover setting for macros
- Fixed bug where types visited in the ExternalsUsed->Types Info Browser field were not highlighted.
1.4 (Build b424) - 29 Oct 2007
1.4 (Build b423) - 22 Oct 2007
1.4 (Build b422) - 15 Oct 2007
General
- If you've installed build 420 or 421, please download and install this build to resolve some issues with the TrackBack integration. There was an error about sockets that appeared when backing up large files, and in some scenarios TrackBack could take a large percentage of CPU time when it was running in the background. These issues have both been fixed and we apologize for any problems they may have caused. If you uninstalled TrackBack because of these issues we urge you to try it again.
- Added new FAQ item to website Is there any way that Understand for C/C++ can follow function calls via pointers?
Understand
- Fix column of reference for a struct name when it is used as part of the type in a variable declaration of the same name. This fixes a bug where the right-click menu on the struct name in such a case was showing options for the variable name.
1.4 (Build b421) - 8 Oct 2007
Understand
- Control Flowchart: Add Overview mode that hides all text on the graph. Rename "Assembly" option to "Display Assembly"
- Control Flowchart: Fixed issue where no condition in a loop exit caused an error
- Added support for GNU GCC 'Labeled Elements in Initializers' extensions.
1.4 (Build b420) - 1 Oct 2007
General
- TrackBack now included with Understand
As part of our ongoing Maintenance, we are happy to announce that we are bundling a version of TrackBack together with Understand. TrackBack watches and backs up every change made in your source code. TrackBack is different from a CM tool in that it requires no checkin. TrackBack watches all changes and can tell you a complete history. It acts as an "undo" button - but for work done hours or days ago.
The version included with Understand works just with Understand. However, a separately purchased version can work outside of Understand as well. Learn more about TrackBack at http://www.scitools.com/products/trackback/product.php
1.4 (Build b419) - 17 Sep 2007
General
-
Attention U.S. Navy project Understand Users:
We have been working on a Navy sponsored SBIR R&D effort for about 2 years now. Some of our recent advances to Understand and TrackBack were spun out of this R&D. Understand 2.0 (which will soon be beta tested) and also new products Change, Measure, and Impact will also spin out of this R&D in the near future.
We now have been nominated for a Commercial Pilot Program (CPP), which is awarded to companies with high commercialization potential of technologies of use to the Navy (and other services). It is quite an honor, something like 20 companies out of around 2000 have made it this far.
How you can help… If you are working on a Navy program (either as a Navy civilian employee or at a prime contractor) then the PEO who nominated us would appreciate additional affirmation that our technology is helping Navy projects. E-mail Ken Nelson (nelson@scitools.com) to learn more about this and who to contact at the Navy SBIR office.
Understand
- Added move up/down to Include configure Replacement Text, to allow user to set order of replacement text is processed
1.4 (Build b418) - 10 Sep 2007
1.4 (Build b417) - 3 Sep 2007
Understand
- Fixed a crash that occurred when reloading flowchart with nested switch statements.
- Added option to change the output format in the IB for enum literal values
- Fixed inactive line determination for preprocessor statements that span more than one line.
- Changed Data Members graph to always show the initial type or object at the top of the graph.
1.4 (Build b416) - 27 Aug 2007
Understand
- Bug fix: find in files in regex mode was not ignoring grayed out options.
- The report generated index.html had unneeded tags at end of the file.
- Allow include directories to support mapped drives at the top level.
- Fix display of backslashes in graphs.
- Copy-to-clipboard of perl graphs (Control Flow) will have a white background now.
1.4 (Build b415) - 13 Aug 2007
SourcePublisher
- Fixed cover sheet and table of contents in codereview output.
1.4 (Build b414) - 6 Aug 2007
Understand
- $CurEntityScope macro added.
Scripts
- Added Gui::scope() perl method.
1.4 (Build b413) - 30 Jul 2007
Understand
- Control Flow: Added option to display entity name in the start node.
- Bug fix: Search and replace in a selection could hang app if selection ended with a replace.
1.4 (Build b412) - 23 Jul 2007
Understand
- External Editor now get column in range of 1..n, previous versions 0..n-1 which is much less common behaviour.
1.4 (Build b411) - 13 Jul 2007
Understand
- The column number was not being passed correctly to a user defined editor, it was always 0.
- Control Flow - collapse an empty case into the next case in a switch statement if collapse is on.
1.4 (Build b410) - 22 Jun 2007
Understand
- The control flow graph uses uses ellipses instead of diamonds for looping structures.
1.4 (Build b409) - 11 Jun 2007
Understand
- Display '= 0' in the c++ IB for pure virtual methods
Scripts
- Added 'instances' option to acjf_dead_code.pl to cause subprograms from generic instantiations to be analyzed. By default these entities are never considered as dead-code.
1.4 (Build b408) - 11 Jun 2007
Understand
- Changed behavior so that adding graphic entity filters while graph filters are off will not cause graphs to be reloaded.
- Bug Fix: In some cases files with wrapping comments using extended ascii characters did not display the end of the comment correctly.
- Add tool parameter to the MSVC project import.
- Fixed External Types field in Info Browser.
1.4 (Build b407) - 4 June 2007
General
- We are getting near to the first alpha release of our 2.0 version of Understand, which will include the ability to analyze sources from multiple languages at once. We are still sorting out the intricacies of linking names between different languages, as this is highly compiler dependent. If you use multiple languages together we would appreciate getting details from you about which compilers you use, along with any relevant options that affect mixed language linking. As examples of the kind of information we are trying to find, some compilers require that you add "_" or other symbols to the front or end of your external symbols, or make them all lowercase, etc. Please send your linking details to support@scitools.com.
Understand
- Fixed bug picking up macro expansion text in #if and #elif statements.
- Added support for non-standard preprocessor commands #elsif and #elseif.
1.4 (Build b406) - 28 May 2007
Understand
- Bug fix: Typing in the editor when the cursor is scrolled off screen now jumps to the text that is being edited.
1.4 (Build b405) - 21 May 2007
Understand
- Fixed svg graph export for text containing reserved characters like & or <
- Fixed crash in command line with -msvc_add option.
- Added support for locating and using various compiler switches, such as /GR, to set appropriate macro definitions, in VC5 and VC6 project files.
- Fix bug where a forward-declared static function was not linked with the subsequent non-static definition.
Scripts
- Added $ent->parsetime() to the api, which returns the last parse time of a file in the database.
1.4 (Build b404) - 29 April 2007
Understand
- Changed the Info Browser field name from Callbys to Called By for consistency.
- Added command line option -include_ignore, which is comparable to the 'Configure Ignored Includes' option in the GUI.
Scripts
- Changed the $ent->ib() call name from Callbys to Called By for consistency.
1.4 (Build b403) - 21 April 2007
Understand
- Crash fix: changing tab size or project tab size with a file open could lead to a later crash while editing or undoing changes
- Change Control Flow graph to allow situations where a control structure is inside of a longer statement
License Manager
1.4 (Build b402, b401) - 14 April 2007
Understand
- none
- Fixed possible crash on a bogus #include statement
- Fixed propogation of using namespace directives to enclosing files.
- Fix crash in configuration dialog caused by build 401.
1.4 (Build b400) - 7 April 2007
Understand
1.4 (Build b399) - 31 Mar 2007
Understand
SourcePublisher
- Add addional options to the metric dialog.
1.4 (Build b398) - 25 Mar 2007
Scripts
- Categorize the scripts and add sorting to the Perl API page on www.scitools.com
1.4 (Build b397) - 17 Mar 2007
Understand
- Fixed possible application hang if the user requested an abort while parsing inactive code.
1.4 (Build b396) - 10 Mar 2007
Understand
- For all HTML reports, turn off document title setting for files since it was frequently displaying incorrectly.
- Fixed bug where a macro referenced inside a nested scope, within a function, could have been incorrectly associated with a nearby type definition, instead of the enclosing function.
1.4 (Build b395) - 3 Mar 2007
1.4 (Build b394) - 27 Feb 2007
Understand
- Fixed bug introduced in build 393 when synchronizing to a msvc project - source files may not have appeared properly.
1.4 (Build b393) - 18 Feb 2007
Understand
- Fixed an issue where canceling a graphic print could crash Understand if the window was closed.
- In msvc sync mode, pickup global macros/includes and parseable files for all tools; allow the user to specify specific tools only to allow on the undc command line with the -msvc_tool option.
1.4 (Build b392) - 12 Feb 2007
Understand
- Bookmarks now disabled when there is no project open.
- Added a new print option to turn off the title header when printing a graphic.
- Fixed crash when aborting a database open.
- none
Scripts
- ent->value will now return the defualt value for parameters in function definitions.
License Manager
- Fixed issue introducted in build 391 that caused almhostid to throw an error on Windows 2000.
1.4 (Build b391) - 5 Feb 2007
Understand
- Added metric CountStmtEmpty, which counts empty statements, which were previously counted under the metric CountStmtExe
- Database version changed. Existing projects will be re-parsed automatically.
Scripts
- Add option to display multiple calls in optional GV Invocation graph.
Perl/C APIs
- Added method $ent->value() to return the value associated with enumerators, initialized variables and macros.
- Add tabstop parameter to $ent->lexer() method to set the size of the tab for the lexer.
License Manager
- Added better support for multiple NICs on win32 platforms, almhostid will generate multiple IDs if there are multiple network cards and allow the user to select the most permanent card.
1.4 (Build b390) - 29 Jan 2007
Parsing
- Fixed issue where the rest of the file was not recognized if a string was left open in inactive code.
Understand
- Removed the "Record references in final macro expansion" option in the project configuration.
1.4 (Build b389) - Jan 23 2007
Understand
- Added missing "unused_types" report to repc command line report options.
- Changed preprocessor to support non standard use of defined operator in expanded macros.
- Fixed possible crash when processing a macro definition file in windows file format and without a newline on the last line.
1.4 (Build b388) - 15 Jan 2007
Understand
- Fixed issue introduced in b386 that caused Understand to not run in Solaris.
Scripts
- Added script c_recursive_includes.pl to detect recursive includes.
1.4 (Build b386) - 3 Jan 2007
General
- Announcing TrackBack, a brand-new software development tool from Scitools. TrackBack is a new kind of personal change management tool. It watches and backs up all changes in your source tree so you can:
* Protect yourself between CM check-ins.
* Instantly see what changed, how it changed and when.
* Recover all or parts of changes – from multiple versions of a file over time.
We’ve received great responses from our beta testers. One told us, "You don't realize how useful TrackBack is until you have it." Another said, “I think you’ve identified a legitimate hole in the multitude of tools available, i.e. the gap between in-process code saving and periodic submission to a Version Control System.”
Learn more and download at http://www.scitools.com/trackback
- We apologize for the lack of build notes over the past two months, our mail system crashed and reimplementing it with a new tool was much more difficult than we anticipated.
- These build notes reflect all changes from build 381 to build 386.
Understand
- Fixed crash that occurred when the user canceled a long 'open database' operation.
- Fixed crash that occurred if floating license users did not immediately open a database.
- Pressing Order/Pricing link with no database caused a crash, this is resolved.
- Fixed crash when changing certain user preferences when no database was open.
- If the Find dialog comes back with "not found",Understand now returns the focus back to find dialog instead of the file.
- Fixed crash on report generation for database that has been created but never parsed.
- Using find in files sometimes caused a crash if no project was open - resolved.
- Adjusted single page graphics to scale correctly when printing.
- Fixed an issue where the undo buffer was corrupted by a Search and Replace action inside a selected block.
Scripts
- _no_define_declare.pl - fixed case where an entity has no references, can be caused by include files not being added to the source list.
- cj_highcomplexity.pl script - correctly handle odd case where "define in" reference can't be found
1.4 (Build b376) - 13 Oct 2006
General
- Build Notice Problems... Notices since Build 365 - Build 373 were lost online due to build log script problems. I will re-do those and publish them to our build note archive.
- Real Time Embedded Shows - We will be in the DC area presenting Understand at two real time embedded shows. You can see us and a few dozen other vendors demoing our wares at no cost. Details below:
- Tuesday - 17 Oct - Patuxent River, MD - http://rtecc.com/paxriver/
- Thursday - 19 Oct - Herndon, VA - http://rtecc.com/tysonscorner/
Scripts
- _no_define_declare.pl - fixed case where an entity has no references, can be caused by include files not being added to the source list.
1.4 (Build b375) - 6 Oct 2006
General
Understand
- Crash fix - uncommon path lead to crash in file view when pasting in text
- Crash fix: coding error, C files with https or ftp in a comment could have lead to a crash
Scripts
- C/C++ API: changed 'defined' to be a preprocessor token, not an identifier token.
1.4 (Build b374) - 29 Sep 2006
General
1.4 (Build b373) - 29 Sep 2006
General
Understand
- Crash Fix: trying to undock search results window during search could have caused a crash
1.4 (Build b365) - 5 Aug 2006
Understand
- Multi-language version of Understand could crash on database open if a valid license wasn't found for one of the languages being analyzed.
- Bug Fix: X-Windows only. Print to page size for graphics was not fitting to page for last 2 releases.
Scripts
- Renamed c_delta.pl to acjf_delta.pl since it is compatible with Ada, Java and FORTRAN.
1.4 (Build b364) - 14 July 2006
Understand
- Fixed bug in re-painting... on loading or updating main filter list there often appeared an un-painted rect area
- Stopped annoying main window painting rect area from flickering on project open
- Changed -ib command line command not to send error as it is always processed.
- Added new entity right click menu items, Copy Name and Copy Fullname
1.4 (Build b363) - 7 July 2006
Parsing
- Changed format of database unique names for entities for all languages/tools.
- Fixed include path handling in synchronized msvc projects.
- Compilers in the Project->Configure->Optionst tab now listed in alphabetic order.
- Added support for IAR MCS x96 compiler.
Understand
- Bug fix: on X-Windows choosing help from the tool configuration dialog would have caused a crash.; Floating help windows have been removed in favor of putting text into command output windows to avoid X-11 issues and native window issues such as MS-Windows copy text
- Bug Fix: Printing graphics to a single fit page would not work correctly if the user had zoomed into the current graphic
- Added new option for find in files out put; show file names as relative, if project files only search relative to project. otherwise relative the starting search dir
- Fixed rounded-rectangle nodes output in SVG exported graphs.
1.4 (Build b362) - 30 June 2006
Understand
- Bug Fix: invoking source file Option "copy as html" with no selection could have caused an application crash.
- Added to interactive reports options a file text box that enables file browsing.
- Flow Charts (Control Flow Diagrams):
- Fixed issue where Nested Switch statements cause the wrong condition text to be passed to the outer loop
- Fixed issue where Fallthroughs were not happening correctly.
- Change the way the flowchart displays Switch statements, instead of displaying them as If/Then structures it now shows more of an "Octopus" version of the switch with each case having it's own arm. Also added a default fallthrough if no default is specified.
- Fix bug where one line Case statements were causing Understand to hang.
- Fixed a bug where the default condition in a switch was not displayed correctly if there was a space between DEFAULT and the colon.
1.4 (Build b361) - 16 Jun 2006
Parsing
- Fixed bug in parsing references within member definitions in classes defined within namespaces that contain using directives.
Understand
- Fixed crash in erasing of Locator Window
- Fixed X-Windows only printing bug: choosing the setup button from the print dialog could have led to a crash
- Bug Fix: Various issues with the User Tools Configuration dialog.
Perl/C APIs
- ajcf_unused.pl - updated to have a "-kind" argument which permits you to specify what kind of thing you want to check is unused. Added when customer requested to find unused "enumerators".
1.4 (Build b360) - 6 June 2006
Parsing
- Fixed bug in the include cache handling of #undef statements.
Understand
- DB format changed. Projects will be re-parsed automatically.
- Bug Fix: Search output, if 1 occurrence was found in the last file listed the number given as found would be one off.
- Fixed Visio generation of rounded rectangle nodes, which were being shown as rectangles, to show as ovals.
- Fixed possible hang Control Flow Diagrams when drawing case blocks containing syntax errors.
- Fixed the text in Control Flow Diagrams "Allow c-syle /*... */ comments" to spell style correctly
- Bug fix: C/C++ project configure dialog on small screens, you could see and select all compilers on X OS
1.4 (Build b359) - 3 June 2006
Understand
- Bug Fix: Graphic views, selecting open nodes from entity menu would pop up an uneeded guage for a short process
- Fixed crash (SGI Irix specific), when right-click on graph node and choose 'Open Node'.
1.4 (Build b358) - 26 May 2006
Understand
- Bookmarks: New Main global boomkark menu item under search to clear all bookmarks in the entire project
- Bug fix: Bookmarks window was not processing any keyboard shortcuts
- Bug Fix: running a graphics Perl script could have caused a crash on a database reparse.
- Changed UPL plugin scripts to be managed by case insensitive name.
- Fixed bug in control flow chart exception parsing.
1.4 (Build b357) - 19 May 2006
Understand