Products, the Universe and Everything

The Riverblade Developer's Blog

Beth demonstrating Visual Lint at the ACCU Conference 2008  Anna taking part in a discussion panel at the European Software Conference 2007 

Welcome to our developer's blog. We hope that this forum provides an insight into us, our products and how we develop them. Please feel free to write to us if you have anything to add to any of the posts here.

Current Entries | Archives |

Visual Lint Standard Edition - 50% off on BDJ this Tuesday!
Sunday, March 27, 2011

The picture says it all:

This Tuesday (29th March), a promotion for per user licences of Visual Lint Standard Edition will be available on the Bits du Jour software discount site at a whopping 50% off.

Update: although the coupon code we've given to BDJ is also valid for Visual Lint Professional Edition, it doesn't appear that there is a way within their ordering system to apply it to other products so it looks like we'll have to run the Pro Edition as a distinct promotion at a later date.

Posted by Anna at 09:29 | Get Link


Visual Lint has been released

The following changes are included:

  • Fixed a bug which prevented code editor markers appearing after the active analysis tool was changed [VS2002-VS2010] [Visual Lint Enterprise Edition].

  • Fixed a bug in the colouring of bars within the IncrediBuild Build Monitor with the Google C++ Style Checker.

  • Preprocessor symbol definitions with embedded blank and null entries (e.g. "WIN32;_DEBUG;_LIB; _MBCS;_UNICODE;;_CRT_SECURE_NO_WARNINGS") are now corrected before being written to PC-lint project.lnt files.

  • Fixed a couple of related bugs in the loading of projects.

  • Added support for Visual Lint 1.x => 3.x upgrade licences

  • Added lightbox effects to image thumbnails in the Getting Started Guide.

  • Deactivated the "Product Editions" page in the installer as the installer support DLL it needs to call to determine whether a trial licence is available (and therefore whether the page should be shown) has been implicated in installation crashes on some systems.

  • Corrected the bundle name and version of the Eclipse plug-in.

  • Fixed a bug in the "Perform Manual Analysis" context menu command in the Eclipse code editor.

  • Removed the non-functional "Enable Background Analysis" and "Delete Analysis Results" context menu commands from the Eclipse Project Explorer.

  • Updated the Eclipse welcome page.

  • Modified the "Set Active Analysis Tool" command to be available in Visual Lint Standard Edition.

  • Corrected the text in the elevation prompt displayed when a function specific to a higher product edition is invoked.

Posted by Anna at 08:53 | Get Link


Visual Lint 3.0 has been released
Monday, March 21, 2011

The first public Visual Lint 3.0 build ( is now available. We are rather proud of this one, as it represents a significant change in the functionality offered by Visual Lint.

Here's a summary of the changes:

Analysis Tools and Development Environments:
  • Added a Visual Lint plug-in for Eclipse/CDT. This currently supports the analysis of managed builder projects using the MinGW toolchain, but we will be adding support for additional toolchains and makefile projects in due course.
  • Added support for the CppCheck open source C++ analysis tool (see
  • Added support for the Google C++ Style Checker ( - see
  • Added basic support for the FxCop analysis tool. This functionality is currently limited to C# projects.

  • Added the Eclipse/CDT plug-in to the installer. When run, the user can now select which plug-ins (Eclipse and/or Visual Studio) should be installed and (if appropriate) the location of the Eclipse/CDT installation.
  • Replaced the "PC-lint Prerequisite Info" page in the installer with a more generic one which delegates information on which tools are supported to a new page on the Riverblade website. As a result the PC-lint installation folder search facility in the installer has been removed (it still exists in the Configuration Wizard, of course).
  • Improved the mechanism optionally used to remove IDE commands from Visual Studio on uninstallation.
  • Updated the readme and licence files packaged within the installer to reflect the functionality and licence terms of Visual Lint 3.0.
  • Corrected the font size in the "space required" control in the installer.
  • Updated the description field in the installer to reflect the fact that Visual Lint is no longer a PC-lint specific product.

  • Added a new "Analysis Tools" page to the Configuration Wizard to allow analysis tools other than PC-lint to be configured.
  • Visual Lint no longer requires the global PC-lint include configuration to be defined in std.lnt; instead -i directives for the system include folders are automatically written to each project indirect (project.lnt) file as it is updated. In consequence the Configuration Wizard "Include folders" page has been removed.
  • Removed the "Use PC-lint to write indirect files" option on the "PC-lint" options page.
  • If a Configuration Wizard prompt is displayed on startup, the version of the analysis tool will now be displayed in the "Visual Lint Status" pane in the Output Window after the wizard exits.
  • Migrated PC-lint configuration options to a more appropriate location in the registry to allow support for additional analysis tools.

  • Added support for accelerated local analysis tasks using PC-lint 9.0 precompiled header files. When enabled, Visual Lint will manage the PC-lint Precompiled Header Object (.lph) file for each project automatically, queueing other files in the project only once the .lph file has become available [Visual Lint Professional Edition].
  • Added support for the analysis of Eclipse/CDT project (.cproject) file using the MinGW toolchain.
  • Added options to allow the root location for analysis results to be specified by the user. The new options are available via a secondary window invoked from the "Analysis" options page [Visual Lint Professional and Enterprise Editions].
  • The default analysis results folder for each solution is now created as a hidden folder.
  • Added an "Analysis Tool" property at solution level to allow the analysis tool to use for a given solution to be defined. When active, the "Analysis Tool" control on the "Analysis" options page is disabled [Visual Lint Enterprise Edition].
  • Added "Preferred Analysis Method" and "Use Precompiled Headers" properties at solution and project level [Visual Lint Professional and Enterprise Editions].
  • Removed the project/global PC-lint indirect file ordering options - Visual Lint now uses the more correct "global, then project" ordering under all circumstances.
  • Undefined environment variables are now stripped from preprocessor symbol definitions when writing PC-lint project indirect files. This prevents analysis errors with constructs of the form #if _SYMBOL > 0, where _SYMBOL is defined as 0$(EnvVar) in the project file.
  • If the preprocessor directive definitions in a project exceed the internal PC-lint limit (610 characters), they will now be written to the corresponding project indirect file one to a line.
  • IncrediBuild messages relating to Build Monitor colouring are now filtered out from the raw analysis results [Visual Lint Enterprise Edition].
  • Generalised the "Mark affected files as stale after a build" option to support C# projects (for use in FxCop analysis).
  • Generalised the interface to IncrediBuild to allow use with analysis tools other than PC-lint. Renamed the XgLintWrapper (the executable used to control colour coding in the IncrediBuild Build Monitor) tool as XgTaskWrapper in consequence [Visual Lint Enterprise Edition].
  • If XgTaskWrapper detects an error, the error message will now be written to the output stream for diagnostic purposes [Visual Lint Enterprise Edition].
  • Revised the naming of generated project indirect files to include the actual project name, rather than the filename (needed for support of Eclipse/CDT projects, which have no filename).
  • Local analysis tasks are now assigned to Win32 job objects after creation. If an analysis task is terminated, this allows any child processes created by the static analysis tool in use to be cleanly terminated [from Visual TICS].
  • Simplified the mechanism used to wait for aborting analysis tasks to exit [from Visual TICS].

User Interface:
  • Added code editor markers in implementation files. Markers are on by default, but can be disabled via a new option in the "Displays" options page. To prevent them obscuring breakpoints while debugging, code editor markers are hidden whilst the development environment is in debug mode [VS2002-VS2010] [Visual Lint Enterprise Edition].
  • Added basic global display filtering capabilities [Visual Lint Enterprise Edition].
  • Revised the design of the Analysis Configuration (formerly "Solution/Project Analysis Configuration") dialog to improve flexibility and allow support for analysis tools other than PC-lint. It is also now resizable for convenience when working with large solutions or projects with long names [Visual Lint Professional and Enterprise Editions].
  • Added the ability to open solution and project specific PC-lint indirect (.lnt) files for editing from within the Analysis Configuration dialog [Visual Lint Professional and Enterprise Editions].
  • Added a "File" combobox to the Analysis Results Display to allow the analysis results for any file within the solution to be manually selected [Visual Lint Professional and Enterprise Editions].
  • Added an "All files" view to the Analysis Results Display to allow the analysis results for all files within a specified project to be manually selected [Visual Lint Enterprise Edition]. Note that such project analysis results are not currently updated "live" as they change - the display is currently purely static in this mode.
  • When an analysis task starts on a file whose analysis results are currently shown in the Analysis Results Display, the existing results set will remain visible and greyed until the task starts to return new issues. Note that details of the previous results set are cached within the Display itself, and hence will be discarded if the contents of the Analysis Results Display are switched to show analysis results for another file.
  • Added "Insert Directive" commands to the Analysis Results Display context menu. When activated, an appropriate inline suppression directive (e.g. //lint !e828) is inserted into the appropriate file within the code editor [PC-lint] [Visual Lint Enterprise Edition].
  • Added "Hide all issues with this ID" and "Reset Display Filter" commands to the context menu of the Analysis Results Display [Visual Lint Enterprise Edition].
  • Added a "Reset Global Display Filter" command to the context menu of the Analysis Status Display [Visual Lint Enterprise Edition].
  • The "View Analysis Results" command on the Analysis Status Display context menu is now available at project level [Visual Lint Enterprise Edition].
  • Added a checkbox to the Analysis Results Display which allows the local display filter to select whether to exclude or include higher severity issues.
  • Added "Next Issue" and "Previous Issue" buttons to the Analysis Results Display. When activated, these allow the user to step through the issues currently presented in the display, selecting each line in the code editor in turn.
  • The most recently used of the "Copy to clipboard" context menu commands on the Analysis Results Display context menu now responds to the Ctrl+C accelerator.
  • The captions of the Analysis Status, Analysis Results and Analysis History Displays now reflect the active analysis tool. Retitled the "Lint Analysis Status" Output Window pane as "Visual Lint Analysis Status" in consequence [VS2002-VS2010].
  • The toolwindow font name and size settings defined in the IDE Tools | Options configuration are now honoured by the Raw Analysis Results view in the Analysis Results Display [VS2002-VS2010].
  • Tooltips shown by the Analysis Results Display now include the name of the analysis tool which generated the issue.
  • The contents of the "Projects" control in the Analysis Results Display are now sorted.
  • The "View History" button in the Analysis Status Display now opens the Analysis History Display even if no solution is open.
  • Files with an analysis status of "Incomplete" and with no reported issues will now be displayed with a "Not analysed" question mark icon in the Analysis Status Display rather than a green tick icon.
  • Replaced the "All Projects" and "All Files" icons in the Analysis Status and History Displays with more general (i.e. non-C++ specific) versions.
  • Restructured the contents of Visual Lint Options to support multiple analysis tools.
  • Moved the "Stale Files" options from the Analysis options page to a secondary window.
  • The heading of the Manual Analysis Dialog now shows the name of the analysis tool being used (e.g. "Performing Manual PC-lint Analysis" instead of "Performing Manual Analysis" if PC-lint is the active analysis tool).
  • Removed the "Don't Save" button in the "Save File?" dialog shown when a modified file is selected for manual analysis.
  • The About Box now displays the name of the actual host environment rather than simply "for Microsoft Visual Studio".
  • Added the "Hand - Yellow" and "Hand - Red" category icons from Visual TICS to the available icons for custom categories [Visual Lint Professional and Enterprise Editions].
  • Tidied up the format of operating system information written to the Status View.
  • The "Registration" options page now shows the text "Trial Licence: n days remaining" or "No Licence" in the registered user control if a licence key is not present. Changed the tab order of the page so that the initial focus is on the "Buy Now" button rather than the "Registered User" edit box in consequence.
  • Colour coded the user name/key fields in the "Registration" Options page as follows: red (no licence), blue (trial) or green (licence OK).
  • Converted various filename edit controls with adjacent "Browse" buttons to combined edit browse controls.
  • Retitled the "Issue Count by No." view in the Analysis Results Display as "Issue Count by ID" for consistency with analysis tools other than PC-lint.
  • Revised the Getting Started Guide to update screenshots and add details for analysis tools other than PC-lint.
  • Modified the "Visual Lint has not yet been configured" prompt to include the name of the current analysis tool where appropriate. This prompt is now also now displayed when the active analysis tool is changed to one which has not yet been configured.
  • The "Lookup Meaning" context menu command in the Analysis Results Display is now disabled for analysis tools other than PC-lint (necessary as Message Lookup databases for tools other than PC-lint have not yet been generated).

  • Added a new "Set Analysis Tool" command and associated dialog to select the active analysis tool.
  • Swapped the placement of the "Analysis Tool Configuration" (formerly "Edit Std.lnt") and "Analysis Tool Warning Policy" (formerly "Edit Options.lnt") commands to allow them to support analysis tools other than PC-lint.
  • The "Analysis tool Manual" (formerly "PC-lint Manual") command now also supports the online manuals for and, and the helpfile for FxCop.
  • Added the Global Display Filter command.
  • Added icons to the "Solution/Project Analysis Configuration" and "Delete Analysis Results" commands in the solution Explorer context menu [VS2002-VS2010].
  • Replaced command button and toolwindow icons with true colour alternatives where possible (VS2008/VS2010). Also improved icons for environments (i.e. VC6/3VC4/VS2002/VS2003/VS2005 and Eclipse) which have limited support for colour depth and transparency.
  • Various minor corrections to the menus in Visual Studio 2010.

  • Added analysis tool version information to analysis reports [from LintProject Professional].
  • Added the name of the licenced user to the footer of all generated reports.
  • Analysis reports created via the Analysis Results Display now display the correct project configuration information.
  • Removed the word "Lint" from the titles of HTML reports.

Bug Fixes:
  • Added a couple of missing context help entries on the "Analysis" Options page and tweaked several others.
  • Updated/corrected context the help text for several controls within Visual Lint Options.
  • Corrected the registry key used to determine which (if any) Visual Studio 2010 service packs is installed [VS2010].
  • The confirmation prompts displayed after a registration key has been entered now reports the name of the IDE correctly when hosted by Visual Studio 2010 [VS2010].
  • Corrected a bug in the handling of Visual C++ 2010 property (.props) files specified via relative pathnames [VS2010].
  • Fixed a crash which could occur if a modified source file was removed and saved in the Visual Studio Solution Explorer [VS2002-VS2010].
  • Paths containing ampersands are now quoted before use in the same way as those containing spaces.
  • Corrected a bug in the formatting and timing of logfile messages.
  • The Visual Studio Addin Manager now shows the human readable product name instead of the application internal name [VS2002-VS2010].
  • Replaced the solution loading sequence used in the Visual Studio add-in with the more general version developed for the Eclipse/CDT plug-in. This should improve the speed of the solution load task on some systems.
  • Analysis results containing paths with inconsistent delimiters (e.g '/' when '\' should be used) are now corrected internally before attemping to "Go to Source" in the Analysis Results Display as not doing so can prevent some IDEs from jumping to the correct line number.
  • The "solution analysis complete" notification is now displayed correctly when whole project analysis completes.
  • Corrected the contents of the task dialog displayed when a trial period is coming to an end.
  • Fixed a bug in the "Use individual .vloptions files for each project" solution/project analysis configuration option [Visual Lint Enterprise Edition].
  • The Analysis Configuration dialog now forces the analysis queue to be regenerated when the dialog is closed to take into account any changes made [Visual Lint Professional and Enterprise Editions].

Further updates (including support for additional analysis tools) are in the works, so if there is a specific analysis tool you would like to see support for, please let us know.


Posted by Anna at 09:03 | Get Link


Visual Lint Getting Started Guide updated
Tuesday, March 8, 2011

Preparatory work for the release of Visual Lint 3.0 rumbles on. This afternoon, it was the turn of the Visual Lint Getting Started Guide, which was overdue for an overhaul anyway.

The fact that we're adding highly visible capabiities such as code editor markers and support for additional analysis tools just made it more of an imperative.

A first draft of the updated Guide has just been checked into the build, but to give you an idea of what is coming, I've uploaded a draft copy of it (complete with a qualifier to the effect that it relates to a forthcoming version of the product) to the Visual Lint product pages here on the website.*

* If you take a look at it, you might just notice that we have now added support for C# analysis using FxCop and are working on support for Java analysis tools...

As ever any feedback would be very welcome. In particular, are there any FAQ items you would like to see added?

Posted by Anna at 16:24 | Get Link


Toolbar Facelift

It may seem like a small thing, but a detail like the way a toolbar looks can be a big deal to a new user - and unfortunately, that's one area where we have fallen short.

It is safe to say that the toolbar images in Visual Lint were never really designed - rather they evolved with the software, and their basic design quite honestly reflects the fact that we are not blessed with abundant graphic design skills. Although we have occasionally updated individual button images there is a limit to what you can do without making the toolbar look completely unbalanced (i.e. one new shiny image shows up all the others).

This is complicated by the veritable mess that is Visual Studio toolbar image support so changing a single button image can require us to generate several (up to 9 if you include Eclipse and our in-house GUI) different versions of each image with different colour depths and transparency. For developers with very limited graphic design skills, that's a big and very time consuming ask.

However, the good news is that we've finally bitten the bullet and redesigned the whole set:

Although we still have a fair bit to do (not least trying to find acceptable 4 bit equivalents of each for use with VC6, eVC4, VS2002 and VS2003) at least we now have a consistent true colour set as a starting point.

I think I can safely say that it just wouldn't have been possible without Axialis Icon Workshop. It is quite simply an excellent piece of software with which even a graphically impaired developer like me can produce reasonable results. Highly recommended.

Posted by Anna at 09:14 | Get Link