Release Notes

Major Milestones


Version

6.1.0.0

Date May 16, 2016

Analysis Enhancement:
  • Improve the analysis of C projects.
  • Improve the analysis of Embedded projects.

Bugs Resolved:
  • Rules not loaded for SonarQube 5.5.
  • Bug in Incremental analysis.

Version

6.0.0.9210

Date April 8, 2016

Bugs Resolved:
  • Crash in CppDepend Addin when using VS 2015 Update 2.

Version

6.0.0.8890

Date June 29, 2015

Plugins Enhancement:
  • Vera++ embedded.
  • Activate external tools by project.

Bugs Resolved:
  • Shared source files in .vcxitems files are not treated.
  • Devexpress message for visual studio extension.
  • Crash when clicking Browse in "Analyze VS projects" form.

Version

6.0.0.8867

Date June 18, 2015

Harness Test Coverage Data:
  • CppDepend gathers code coverage data from Bullseye™, Cobertura and Visual Studio Team System™. From this data, CppDepend infers some metrics on methods, types, namespaces and projects : PercentageCoverage, NbLinesOfCodeCovered, NbLinesOfCodeNotCovered and BranchCoverage.
Advanced Integration with External Tools:
  • CppDepend provides many interesting features to explore and treat the data extracted from the analysis phase, and it's very interesting to use these features to treat the analysis data from the other static analysis tools.
Visual Studio Integration Enhancement:
  • Integration with Visual Studio 2015
  • CppDepend Windows location / size / docking status are now properly stored and restored accross Visual Studio executions.
  • CppDepend Visual Studio extension is now based on VS package API (VSIX), while it was based on VS Addin API. As a consequence the extension is faster to load and the overall extension stability is strengthened.
  • Full support of Visual Studio keyboard shortcut assign + easy way to set/reset default CppDepend shortcut.
  • Enhanced CppDepend global menus.
  • When a code element right clicked in VS is yet unknown to CppDepend, a menu proposes to either add the parent assembly to the list of assemblies to analyze, or, if the parent assembly is already there, the menu proposes to refresh the analysis result by re-building the VS solution and then re-running the NDepend analysis.
  • A CppDepend project can now be attached to a VS solution file (.sln) or to a VS solution user options file (.suo).
  • When attaching a CppDepend project to a VS solution file (.sln) the user is not prompted anymore to reload the solution. The VS solution file is written when closing the solution, or when requiring VS Save All.

Rules Enhancement:
  • With CppDepend v6, Rule Files can be created and shared amongst CppDepend projects. This is useful to define company-level standard rules sets, and get them applied by all teams.
  • A detailled Description and HowToFix section has been added for each default code rule. You can choose both in the CppDepend UI and the CppDepend report, to view the rule description or source code.
  • It is now possible to insert tags <Description> and <HowToFix> in code rules source code comment.
  • More than 30% of default code rules source code have been refined to offer more detailled results with less false positives.

UI Enhancements:
  • The Metric View can now display a second metric by coloring the treemap elements. Hence two code metrics can be displayed at once.
  • In Rules and Queries result, percentage Code Coverage values are now displayed with a proprotional green/red color scheme.
  • Support Visual Studio Blue, Dark, Light Themes, and VS2010 Blue theme.
  • The CppDepend UI now scales properly whatever the DPI settings, 100%, 125%, 150%, 200% and 250%.
  • Class Browser and Queries Explorer Treeview have now OS explorer theme.
  • Shaded animation when transitionning from one dependency graph to another, doesn't flicker anymore!
  • In query/rule result windows, when showing a sub-result in a native window, the native window height is now well sized.
  • When saving a query or a rule edited, the overall edition status is preserved (this includes the scroll bars position, the cursor position and the selection length).
  • When pinning a description, the info panel background color is set to grey.
  • CppDepend > Tools > show Options Form, now remembers which last option panel was shown last time the Options Form closed.

Version

5.1.0.243

Date March 10, 2015

Bugs Fixed:

  • Resolve clang problem for Windows XP.
  • Improve some default CQlinq queries.

Version

5.1.0.125

Date February 7, 2015

Bugs Fixed:

  • Improve Incremental analysis performance.
  • Resolve cppcheck analysis when relative path is enabled.
  • cppcheck is now enabled by default.

Version

5.1.0.87

Date January 30, 2015

Major Features:

  • Use clang-modernize to give advices where the code could be modernized to use some new C++11 features.
  • Path referenced from the the CppDepend project can now use the UNC absolute path syntax (like \\Server\Share\Dir\project.vcxproj).

Version

5.0.0.712

Date January 14, 2015

Bugs Fixed:

  • Improve reading Visual Studio project configuration.
  • Trend chart not visible sometimes in HTML report.

Version

5.0.0.622

Date October 1, 2014

Major Features:

  • Diagnostics: CppDepend v5.0 exploit now all the Clang diagnostics and it's possible to query them using CQlinq.
  • Support for C++1y/C++14 projects: CppDepend v5.0 works with the last version of Clang which implement all of the Draft International Standard of the upcoming C++14 language standard
  • Combine between many useful C/C++ tools: CppDepend v5.0 proposes the feature to import XML result files from CppCheck and CPD.
  • Advanced integration with CppCheck: CppDepend v5.0 integrate now out of the box the cppcheck utility, it could be easily enbled and all its results are integrated to the CppDepend code model.
  • More adapted to C projects: CppDepend v5.0 proposes now a Directory/File structure and a CQlinq extensions to query files. The class browser and all the interactive graphs are now adapted to explore better the pure C projects.
  • Custom CQlinq Extensions: For more flexibility, CppDepend 5 proposes now a powerful way to develop you custom CQlinq extensions using the API.

Version

4.0.0.9020

Date 10th of April 2014

New Features:

  • Possibility to specify number of cores to use when parsing the projects.
  • Add an option to parse or not header files not included in any source files.It could be interesting for templated libraries.

Version

4.0.0.8850

Date 10th of April 2014

Bugs Resolved:

  • MSBuild environment variables of kind $([System.IO.Path]::F) not treated.
  • MSBuildThisFileFullPath not well treated.

Version

4.0.0.8720

Date March 3, 2014

Bugs Resolved:

  • Not using the right VS include paths for VS2013.
  • LOC not correct for some cases when a macro is used inside a function body.
  • Not all clang errors are reported.

Version

4.0.0.8140

Date Novembre 29, 2013

Bugs Resolved:

  • Conflicts between CppDepend and NDepend Addins.

Version

4.0.0.7500

Date October 28, 2013

Major Features:

  • Support for Visual Studio 2013: CppDepend v4.0 integrates into Visual Studio 2013, 2012, 2010 and 2008.
  • New Dashboard Panel: CppDepend v4.0 proposes a new Dashboard that shows at a glance the state of your code base.
  • Trend Monitoring: CppDepend v4.0 can monitor trend metrics and shows trend charts. Default trend metrics and trend charts are proposed and custom ones can be created.
  • Halstead Metrics: CppDepend v4.0 Introduces the Halstead Metrics
  • Churning Rules and Queries: CppDepend v4.0 lets list Rules and Queries according to common criterions. Listing all Rules Violated is now a one click operation.
  • Focusing on Recent Rules Violations: CppDepend v4.0 proposes the option to filter only rules violations that occur on code elements added or refactored since a baseline.
  • Redesigned report. The report now includes trend metrics charts. The design has been rethought and more information is shown, especially concerning diff.

UI Enhancements

  • Main menus organization relifted both in VisualCppDepend and in VisualStudio Addin.
  • VS2012/2013 Light/Dark/Blue themes supported.
  • VS2012/2013 UI style for Project Properties Vertical Tab.
  • VS2012/2013
  • VS2012/2013 UI style for Splash Screen.
  • VS2012/2013 UI style for Start Page.
  • VS2013 Style Icons.
  • Support for using Visual Studio 2013 as a source file compare tool.
  • When showing a dependency graph too complex to be browsed, a note is shown that explain that it is recommended to export the graph to the dependency matrix, better suited to browse large structure.
  • In forms dedicated to choose assemblies set to analyze, the capability to filter assemblies by name has been added and ergonomy has been enhanced.
  • Alt+N keyboard shortcut in VisualStudio now selects the CppDepend main menu.
  • In Matrix/Graph/Metric view, the Context Sensitive Help is not located anymore in the way that it could overlap the element currently hovered.
  • Pan is now the default grab mode of the Graph.
  • New pan cursor in Graph, Treemap and Matrix.
  • On Vista OS and above, CppDepend now uses the modern Folder browser dialog.
  • On Right-click menus, the double click action menu is now bold.
  • When double-clicking a class to open its source file declarations, the class being declared in two source files, the second being a ".designer." file, CppDepend jumps directly to the source declaration of the type without proposing to open one of the two declarations.
  • In Search panel, search code elements by change, when changing the kind of code element searched, the currently checked button remain checked if it is not disabled.
  • In the Rules explorer panel, when selecting a group that doesn't have direct rules/queries children, CppDepend expands its children groups!
  • When double-clicking the critical rules violated warning in the Error List panel, the list of Critical Rules Violated is shown.
  • When open a project, without analyse result, shows in the error list the last analysis (if any) logs
  • In Search panel, query generated are now executed asynchronously which leads to improved UI responsivness when searching on large code base.
  • In Search panel, search code elements by change now generates more sophisticated code queries that provide more details.
  • In Search panel, search code elements by coupling now generates more sophisticated code queries that provide more details.

Version

3.1.0.0

Date November 5, 2012

New Features:

  • Linux 64 bits support.

Version

3.0.0.6445

Date September 28, 2012

Bugs Resolved:

  • Detect the right SDK used by the solution.
  • All CppDepend assemblies are now compiled in AnyCPU. This solves all incompatibility problem with VisualStudio on machines with a x64 processor architecture.

Version

3.0.0.6376

Date August 24, 2012

Bugs Resolved:

  • Resolve Add-in issues for VS 2010 and VS 2012.

Version

3.0.0.6252

Date July 30, 2012

New Features:

  • Use Clang as C\C++ parser.
  • Linux Support.
  • New CQL language CQLinq based on Linq.
  • BuildMonitor to intercept Build commands for any C\C++ build process.

Version

2.8.9.0

Date February 15, 2012

Bugs Resolved:

  • In some cases dependency is not detected if it exist in a macro.

Version

2.8.8.0

Date February 6, 2012

Bugs Resolved:

  • Use the right SDK path if many SDK are installed.
  • Exclude files from scan if they are excluded from .vcxproj files.

Version

2.8.7.0

Date January 30, 2012

Bug Resolved:

  • Improve reading .vprops files for VS10 projects.

Version

2.8.5.0

Date May 25, 2011

Bug Resolved:

  • Improve reading .vprops files.
  • Resolve bug concering loc computation.

Version

2.8.4.0

Date May 10, 2011

Bug Resolved:

  • Dependency between projects described using ProjectMaker.

Version

2.8.3.0

Date March 30, 2011

Bug Resolved:

  • LCOM and LCOMHS not well calculated if fields are initialized in the constructor Initialization Lists.

Version

2.8.2.0

Date February 8, 2011

New Features:

  • Improved analysis for C projects.

Version

2.8.1.0

Date January 30, 2010

Bugs Resolved:

  • Problem in metric view when .vdproj exist in the solution analyzed.

Version

2.8.0.0

Date January 10, 2010

New Features:

  • Enhanced report.
  • Sensitive help added to understand better CppDepend features.
  • ProjectMaker improved.

Version

2.7.2.0

Date December 20, 2010

Bugs Resolved:

  • Dependency to overloaded methods not detected correctly .

Version

2.7.0.0

Date December 10, 2010

Bugs Resolved:

  • Bug When reading .props files for VS2010 projects.

Version

2.6.0.0

Date November 18, 2010

Bugs Resolved:

  • Dependencies for no template Smart Pointer is not well treated.

Version

2.5.0.0

Date November 6, 2010

Bugs Resolved:

  • Cyclomatic complexity for method containing macros
  • excluded files from .vcproj are not excluded from analysis

Version

2.4.0.0

Date October 25, 2010

Bugs Resolved:

  • bug when searching for .propos when analyzing .vcxproj files

Version

2.3.0.0

Date October 19, 2010

Bugs Resolved:

  • cppparser crash when initializing a static variable using template function
Added functionalities:

  • Adding the possibility to have the dependencies between directories, useful for C projects

Version

2.2.2.0

Date September 12, 2010

Bugs Resolved:

  • parsing error for idl files containing Types

Version

2.2.1.0

Date August 8, 2010

Bugs Resolved:

  • get additional include path from PropertySheet
  • dependency with static library

Version

2.2.0.0

Date July 16, 2010

Features:

  • Possibility of choosing a configuration for VS projects

Version

2.1.0.0

Date July 5, 2010

Bugs Resolved:

  • Treat projects existing in paths with unicode name

Version

2.0.1.0 (Trial Edition) / 2.0.1.0 (Professional Edition)

Date June 19, 2010

Bugs Resolved:

  • Not Consider Com Class as Abstract
  • Instability of CppDepend Add-in for VS 2010

Version

2.0.0.1 (Trial Edition)

Date May 5, 2010

Bug resolved:

  • projects build order bug resolved for HTML Report.

Version

2.0.0.0 (Pro Edition & Trial Edition)

Date April 15, 2010

Features: VisualStudio Integration


  • Integration of all VisualCppDepend panels in VisualStudio 2010, 2008 and 2005.
  • A global CppDepend menu lets access any of these panels.
  • All CppDepend features are available on right-clicking anything that can be recognized as a code-elements in the Code Editor and Solution Explorer.
  • Possibility to place some CppDepend menus at the first level of the code element contextual menu.
  • Heuristic to infer a namespace from a solution folder and to infer a type from a solution source file.
  • Possibility to interact across several opened VisualStudio instances, when a CppDepend project is spawning several VisualStudio solutions.
  • Animated Circle Icon that informs about analysis progression, loading progression, CQL computation progression and CQL status.


Performance and Responsiveness:

  • Loading an existing analysis result is more than 2 times faster.
  • CQL Query compilation and execution is 3 times faster (typically 50 to 200 CQL rules verified per second).
  • Dependency Matrix computation is an order of magnitude (x10) faster for most operations (noticeable only on large matrix).
  • Background and abortable computation of Dependency Matrix and Dependency Graph.


Features: Compare

  • Possibility to define a Baseline for Comparison used when loading a project in VisualCppDepend and VisualStudio.
  • When comparing 2 builds, possibility to disassemble the 2 versions of the code of a method or of a class where CodeWasChanged and compare them with the specified source file compare tool.
  • 2 new comparison facilities: Compare the currently loaded Analysis Result with another Analysis Result + Stop comparing and only keep the current Analysis Result


Features: Graph

  • When pointing a node in graph, indirect caller/callee nodes are highlighted with a soft blue for callee/green for caller/red for caller/callee that differenciate them from direct caller/callee nodes.
  • The keyboard shortcut Ctrl+Space takes a snapshot of the graph. It is useful to take snapshot with colored nodes by mouse hovering.
  • Possibility to append to the graph a set of code elements from a CQL query result.
  • Possibility to remove selected nodes in a graph and also, possibility to keep only user/used nodes of a node.


Features: CQL

  • Possibility to edit several queries at the same time in the new Query Edition panel.
  • New buttons: Search type by Name; Search method by Name; Create a New CQL Query
  • When displaying the query result of a query containing a METHODS WHERE ... XXXWritingField \ ...XXXDeriveFrom \ Implements \ ReturnTypeIs \ FieldIsOfType \ HasAttribute clause, the targeted code element is now displayed in the query target section of the result.


Features: CppDepend Analysis and Project

  • Possibility to attach a CppDepend project to a VisualStudio solution.
  • When a CppDepend project is modified outside of the process, the user is informed when he re-activates the VisualStudio or VisualCppDepend window.
  • When currently showing the most recent analysis and a more recent analysis result is available (computed from another process), the most recent result is loaded automatically when he re-activating the VisualStudio or VisualCppDepend window.
  • Option menu to Import/Export/Reset VisualCppDepend Options.


Features: Info Panel

  • Nicer display of code elements and dependencies description in InfoPanel (with hyperlink for metrics definition).
  • By default, show Global Summary in the Info Panel.
  • Possibility to Pin\UnPin code element and dependency description in Info View.


Behavior change:

  • In build comparison, if the type of a field changed, CppDepend considers that the code of the fields’ declaring type was changed (CQL condition CodeWasChanged).
  • When comparing 2 analysis results in VisualCppDepend and then running a new analysis on one of the 2 results, once the analysis complete, VisualCppDepend is still in comparison mode.
  • When comparing 2 analysis results, code elements displayed names are underlined only if the code was changed, before we underlined even if comments were changed.
  • The default CQL rule 'A stateless class or structure might be turned into a static type' has been updated to avoid matching classes that have a base class and base classes that have children subclasses.
  • The default CQL rule 'Methods that could be declared as 'internal' has been updated to avoid matching default constructors.
  • The default CQL rule 'Classes that are candidate to be turned into Structures' has been updated to avoid matching static classes.
  • Computation of the metrics LCOM and LCOM-HS defined on types no longer takes into account compiler generated members.


Bug Fixed:

  • In the metric view, when displaying fields with the metric set to 'Size of Instance', right clicking a rectangle representing 'Fields inherited from XXX' raised an exception.
  • After a restart of VisualCppDepend, the panels could be over-sized
  • The initial location of the VisualCppDepend form might not be retrieved properly from the last run in multi-monitor environment.
  • Dependency Matrix ToolTips might not be located properly in multi-monitor environment.
  • ScrollBars were not properly displayed in the CppDepend StartPage.
  • When comparing 2 builds and disabling some assemblies, an exception could occur when selecting a child of a discarded assemblies in a query result.
  • An exception could be raised when selecting a code element displayed in a search result, when the search result vertical space was not large enough.
  • A '&' character in a comment of a CQL query declared in code source could raise an exception during analysis.
  • A tab character in the body of a CQL Query in the project file could prevent the CQL compiler to run properly.
  • In some cases, duplicated CQL query definition in source code could raise an exception during analysis
  • In the Browse Project Dialog, clicking a header of the grid raised an exception.
  • When comparing analysis, constructor(s) of a class which base class was changed was not considered as changed.
  • Assemblies with forwarded types can now be analyzed.
  • Method return type could not be correctly linked for abstract methods.
  • An exception could be raised while analyzing some kind of obfuscated assemblies.
  • An indirect usage path from a method to a field couldn't be exhibited from the Matrix to the Graph.
  • An indirect usage path from a namespace parent to an assembly couldn't be exhibited from the Matrix to the Graph.
  • The Visual Studio 2008 skin was disabled because several problems were caused by this particular skin.
  • Saving analysis result of a very large analyzed application could take an abnormal long duration (in minutes).
  • When doing a comparison at analysis time in 'Another project' mode, the description of the analysis result against which the comparison is done could be wrong.
  • When displaying the query result of a query containing a METHODS WHERE ... XXXWritingField clause, the query targeted field was not displayed correctly.
  • When editing a CQL clause DepthOfWritingField "XXX" > XXX, when displaying the intelisense number , the upper threshold displayed wasn't correct.
  • When a query has no code element matched, it is now shown adequately in the result area.
  • CQL queries generated from dependency related menus could contains some and tags.

Version

1.0.0.1 (Trial Edition) / 1.0.0.1 (Professional Edition)

Date September 17, 2009

Added functionalities:

  • Adding ProjectMaker.exe to describe projects other than .vcproj in order to analyze them with CppDepend.

Version

1.0.0.2 (Trial Edition) / 1.0.0.2 (Professional Edition)

Date September 27, 2009

Added functionalities:

  • Treat enums.

Version

1.1.0.0 (Trial Edition) / 1.1.0.0 (Professional Edition)

Date October 2, 2009

Bug fixed:

  • detect dependency used in macro.

Version

1.2.0.0 (Trial Edition)

Date October 28, 2009

Added functionalities:

  • having the same package that works for 32 and 64 bits, either than 2 packages.

Version

1.2.0.0 (Pro Edition)

Date November 3, 2009

Added functionalities:

  • having the same package that works for 32 and 64 bits, either than 2 packages.

Bug fixed:

  • search for PDB file bug resolved
  • ChangeObjectState bug resolved

Version

1.2.1.0 (Trial Edition)

Date November 14, 2009

Bug fixed:

  • resolve dependency problem concerning typedef declared in the method body.
  • resolve dependency problem concerning inner class under template class.

Version

1.2.1.0 (Pro Edition)

Date November 24, 2009

Added functionalities:

  • New CQL queries concerning C++ Best Practices.

Bug fixed:

  • resolve dependency problem concerning typedef declared in the method body.
  • resolve dependency problem concerning inner class under template class.

Version

1.2.2.0 (Trial Edition)

Date February 12, 2010

Added functionalities:

  • Treat Visual C++ 2010 projects.

Removed functionalities:

  • Only three projects can be analyzed with Trial version.

Bug fixed:

  • resolve bug concerning depth of inheritance computation
  • adding functions and variables declared inside namespace to GlobalMembers of this namespace instead of GlobalMembers of the whole project

Version

1.2.2.0 (Pro Edition)

Date February 28, 2010

Added functionalities:

  • Treat Visual C++ 2010 projects.
  • Treat Visual C++ 6.0 projects.

Bug fixed:

  • resolve bug concerning depth of inheritance computation
  • adding functions and variables declared inside namespace to GlobalMembers of this namespace instead of GlobalMembers of the whole project
  • resolve bug concerning Cyclomatic Complexity

With CppDepend, software quality can be measured using Code Metrics, visualized using Graphs and Treemaps, and enforced using standard and custom Rules.