Rss Feed
Tweeter button
Facebook button
Linkedin button
Stumbleupon button

Support for Visual Studio 2014 CTP

By , August 12, 2014 3:54 pm

Microsoft recently released the Community Technology Preview version of Visual Studio 2014, also known as Visual Studio 2014 CTP. Because it’s a technology preview Microsoft have restricted Visual Studio 2014 CTP to only run on Windows 8, although the executables you build with it will run on ealier operating systems.

As usual with new version of Visual Studio, several things change while many stay the same. In terms of supporting each version of Visual Studio the items that concern us are:

  • New version of the C runtime.
  • New Visual Studio editor.
  • New version of the symbol handler, dbghelp.dll.

I’m pleased that we can announce full support for Visual Studio 2014 CTP for our C++ tools, C++ Bug Validator, C++ Coverage Validator, C++ Memory Validator, C++ Performance Validator and C++ Thread Validator.

We’ve written up details on the major changes with Visual Studio 2014 CTP.

Tracking C Runtime memory

The C runtime for Visual Studio 2014 CTP is called APPCRT140.DLL (or for debug builds APPCRT140D.DLL).

VS2014Callstack

Visual 2014 Editor

Specify the Visual Studio 2014 editor to use (if choose Running Instance it will start a new instance if no Visual Studio is running, else it will use the existing running instance of Visual Studio).

VS2014Editing

If you don’t want to view the code snippet inline, just double click (or right click and choose Edit Source Code) and your selected version of Visual Studio is started and the code displayed.

VS2014Editor

Visual 2014 Symbol Support

Specify which symbol handler to use.

VS2014Symbols

When your program is run the symbols will be loaded by the specified symbol handler.

VS2014SymbolsLoaded

A slight change in direction

By , June 16, 2014 4:11 pm

When we started the business in 2002 we just wanted to launch a C/C++ memory analysis tool that could do things none of the other memory analysis tools could do. We succeeded. And 12 years later the other C/C++ tools still don’t offer the features that C++ Memory Validator does.

After a while we realised that some of the techniques we had developed for C++ Memory Validator could be used to develop other C++ related tools. This resulted in tools for Code Coverage, Performance Profiling, Thread Analysis and Flow Tracing. The last one is still an experiment – we’ve never been quite sure where to go with it.

Lots of Languages

Then we got a bit ambitious releasing versions of these tools for Java, JavaScript, Python, Ruby, Perl, PHP, Lua and an experimental in house version for Tcl. We even considered creating versions for Erlang, Eiffel, Go! and other languages. You could say we got a bit enthusiastic with the idea of trying to support all languages with a similar user interface. We created the first commercial tools for Ruby in 2005 before Ruby on Rails had really taken off. We also created some interesting tools for JavaScript (for the Firefox browser) but keeping up with the very brittle changes made each release by the Firefox team placed ridiculous demands on our software team. It was very flattering to be approached by a leading router manufacturer regarding our Lua tools and could we build them a custom version?

But when you are first you can’t always predict the way the market with go. With all of the above languages, except possibly Java, the market has resoundingly chosen Linux. Which leaves tools that run on Windows in a precarious position. As for Java, Eclipse and the toolsuite around Eclipse are the dominant tools.

Distraction

Maintaining all these tools has become a distraction. We have lost sight of where we should be focussing. So we have come to a decision.

C++ and .Net

Effective immediately we are only going to focus on our C/C++ tools and .Net tools. This will allow us to provide better tools, a better experience and better results for the users of our tools.

Beta Tools

With the exception of C++ Bug Validator all other beta tool programmes will cease immediately. There will be no more software updates for any beta tool other than C++ Bug Validator.

Java, JavaScript, Lua, Python, Perl, PHP, Ruby

All tools for Java, JavaScript, Lua, Python, Perl, PHP, Ruby will be removed from evaluation programmes and are no longer available for sale. Existing customers will continue to receive software updates until the end of their software maintenance period.

Of course this will come as a surprise to some of our customers and we’re very sorry about that. But you have to admit when tools have reached the end of their life.

The whole purpose of this change is to allow us to provide a better result for the users of the core tools of our business rather than a not so good result for a larger group of people. Excellence requires focus and that is what we are going to do.

Future

In the future we may re-package some of the retired tools as free tools. But we’re not sure what direction to go with that. It’s not just a case of making them available for download. The most likely tools to make a re-appearance are for Lua, Python and possibly Perl.

What about JavaScript? Well, maybe. But if they reappear it will be commercially as they take a lot of effort to make work with Firefox.

Why don’t we open source them? Sorry, we can’t do that. Large parts of these tools are part of the C++ and .Net tools.

An easier way to work

By , June 6, 2014 10:30 am

April 8th 2014 heralded a new era – that of no security updates for ageing Windows XP machines. Many people still use Windows XP and they are now being forced to upgrade to Windows 7 or Windows 8 or to a different operating system altogether.

For users of our software tools the natural jump is to Windows 7 as Windows 8 is just too much of a change. That said I’m writing this on a Windows 8 machine. Either way it doesn’t matter, after Windows XP you are in the world of User Account Control where any action requiring more privileges than your account has is met with a challenge dialog to ensure the action was requested by you and not a malicious piece of software.

Until now our software has always run with a “requireAdministrator” manifest so that the software runs with the maximum privileges available. This made the software easy to write but not so pleasant to use: Everytime you started the software you would be greeted with a User Account Control dialog – even when run from the command line for automated use.

For some people the solution was to disable User Account Control for the specific tool. That works, but it requires effort. But the whole point of software tools is for us to do the hard work to make life easier for the user of our software.

A better way was required – make our tools work without needing to run with any special privileges. We’ve just released an update to all our software tools that fulfils this aim. You can still run the tools with administrator privileges if you desire, but for most actions with the exception of a few specialist uses the software tools run perfectly in interactive and command line automated forms without the need for administrator privileges.

All existing customers with valid software maintenance have been notified of the updates (check your inbox). All evaluation versions have been updated to run without administrator privileges.

For a more technical insight into this work, read An End to Unwanted UAC Prompts.

Efficient ways of working – Floating Licences

By , February 12, 2014 10:09 pm

Floating licences allow you to install and use the same licence on multiple machines when you have a number of users all using the software simultaneously. When you have users who may only require the software for a short time each day, floating licences operate within ‘a pool’ – once the user has finished using the software tool the license returns to the pool to be re-assigned as required.

This is a much more economical route to go than buying individual licences and possibly has greatest value to those working in large software development teams working on a wide variety of tasks requiring hugely diverse tools. Imagine that your tools are effectively sitting in a shared toolbox, to be passed around the office and returned to the toolbox for general use when you are finished with whichever one you are using.

In general, larger companies or academic bodies find that floating licences are ideal when the number of users exceeds the number of licenses available. If you think about it, if a software development team is partly made up of contractors who ebb and flow depending on workload or the need for a particular skillset – then it’s an ideal set up. As work comes in and the developer pool grows, there may not be enough licences to go around. Equally not everyone may need the same tools at the same time – hence it provides the ultimate flexibility.

For example, in a team of 20 developers, you may only have and need, 5 floating licences. This means that 5 of your developers can simultaneously use the software. With a simple click of a button, your developer can relinquish the license ready for another colleague to take it up. For them to do this is again either a matter of a simple click of a button in an already running tool or just by the act of starting up the required software tool.The maths is simple and the benefit clear – your team of 20 have the right level of software tools at their disposal without the need to outlay for 20 licenses.

Why software maintenance is a great insurance

By , February 12, 2014 10:06 pm

Protecting yourself against the unexpected has received a mixed press of late. Nobody likes to feel they are paying over the odds for something that offers them no value with the chances of anything actually going wrong being very remote. It can be a tough call to decide whether protecting yourself is a nice to have or a necessity.

The software tools that we build are resilient and continuously updated based on feedback from both customers and evaluators. So there is a strong sense of certainty that whether you are working on code coverage, memory profiling, deadlock detection or performance profiling, our tools will provide the results you need. It is reassuring however, that should there be a problem; you’ll have the peace of mind to know that you have the support you need. Then you can get back to writing your code without further worry.

Software maintenance entitles you to all software updates released during the maintenance period. These software updates include bug fixes, new features, support for new operating systems and new versions of Visual Studio and any additional compilers that we decide to add support for.

Our software tools are also capable of self-updating. So the software will check for the availability of a new update and prompt you to ask if you are interested. If you are, all you need to do is simply login to our server, download and install the software and new license keys and then restart the software.

Software maintenance renewal pricing is realistic and is available at 25% of the cost of the currently listed price of the software. Should you forget to renew your maintenance agreement and it lapses before you realise it, you can upgrade to the current version of the software at 50% of the currently listed price of the software. This still represents excellent value for money but obviously you make the best savings by simply renewing the maintenance. It is very easy to manage your maintenance renewal from within your account.

New news blog

By , December 12, 2013 11:11 am

Hi,

Historically we haven’t been too great at communicating news about Software Verification to you all.

Proof of the pudding is that the previous news page has entries that are sometime one line long but that cover an entire topic. How is that possible? And as a result the entire history of the company can be summed up in a page or two of entries on the previous news page. Rather than obsolete these entries I’m going to list them below so that they are still part of the company historical record.

For the future we’re going to be reporting news here in our news blog. Technical stuff will remain in the company blog and Stephen’s personal ramblings about conferences and other stuff will move to a new dedicated blog for all things to do with software, music, bagpipes and snails.

Enjoy!

Stephen, John, Roger, Terry, Annette.

Perl Profiling API August 2011

Perl Profiling API has been released. This API allows Perl applications to be easily profiled for code coverage, flow tracing and profiling tasks. Our Perl tools have been updated to take advantage of this new profiling API.Read full story

C++ code coverage detector – C++ Coverage Validator x64 August 2011

C++ Coverage Validator x64 enters beta test. This is the x64 port of our successful C++ Coverage Validator code coverage detection software tool. Read full story

C++ performance profiler – C++ Performance Validator x64 August 2011

C++ Performance Validator x64 enters beta test. This is the x64 port of our successful C++ Performance Validator performance profiling software tool. Read full story

Software Verification new website design July 2011

The Software Verification website gets a new design to improve navigation and presentation of the software tools.

C++ memory leak detector – Memory Validator September 2010

Memory Validator x64 enters beta test. This is the x64 port of our successful Memory Validator memory leak detection and memory analysis software tool. Read full story

C++ deadlock detector – Thread Validator August 2010

Thread Validator x64 enters beta test. This is the x64 port of our successful Thread Validator deadlock detection and thread analysis software tool. Read full story

.Net code coverage – .Net Coverage Validator July 2010

V3.00 of .Net Coverage Validator released. This new version runs code coverage at nearly 100% of the speed the application would
run without our tool performing code coverage on it. Perfect for realtime code coverage during interactive testing of software products. Read full story

Software tools updated to handle Windows 7 May 2010

All software tools updated to handle Windows 7 new DLL Kernelbase.dll. This is important for tracking any DLL loaded via COM instantiation.

Thread Status Monitor April 2010

Launch of thread status monitoring software tool Thread Status Monitor. Read full story

Thread Lock Checker April 2010

Launch of source code error checking software tool Thread Lock Checker. Read full story

DLL filtering added March 2010

DLL filtering added to .Net Memory Validator and .Net Performance Validator
All JavaScript tools updated to support Firefox 3.6, Firefox 3.5, Firefox 3.1.

Faster shared memory February 2010

New faster shared memory design for all versions of Coverage Validator.
New faster line timing shared memory design for all versions of Performance Validator.

Code Signing Certificate December 2009

All software downloads now signed using a Code Signing Certificate.

Added support to Validator October 2009

Added support for Delphi Branch Coverage to C++ Coverage Validator.
Added support for MinGW gcc/g++ compiler to C++ Coverage Validator.
Added support for MinGW gcc/g++ compiler to C++ Memory Validator.
Added support for MinGW gcc/g++ compiler to C++ Performance Validator.
Added support for MinGW gcc/g++ compiler to C++ Thread Validator.

Suites of software tools September 2009

September sees the introduction of suites of software tools to provide greater value for money than if the
software tools are purchased individually. Three suites for C++/Delphi/Visual Basic 6 users and one suite for .Net users.

C++, Visual Basic 6, Delphi suites:
C++ Developer Suite: Coverage, Memory, Performance, Thread.
C++ QA Suite: Coverage, Memory, Performance.
C++ Support Suite: Memory, Performance.

.Net suites:
.Net Developer Suite: .Net Coverage, .Net Memory, .Net Performance.

Added support for Python 2.6 August 2009

Added support for Python 2.6 to Python Coverage Validator.
Added support for Python 2.6 to Python Memory Validator.
Added support for Python 2.6 to Python Performance Validator.

CppUnit unit test support April 2009

Added CppUnit unit test support to Coverage Validator.

Coverage Validator 4.0released March 2009

Coverage Validator 4.0 released.
The main improvement with Coverage Validator 4.0 is the addition of Branch Coverage statistics.

.Net Coverage Validator 2.0 released.
The main improvement with .Net Coverage Validator 2.0 is the addition of Branch Coverage statistics
and provision for DLL filtering.

Added 64 bit support January 2009

Added 64 bit support to .Net Coverage Validator.
Added 64 bit support to .Net Performance Validator.
Added 64 bit support to .Net Memory Validator.

All .Net software tools now support all versions of the .Net Common Language Runtime (CLR) and all versions of the .Net Framework on all 32 bit (x86) and 64 bit (x64) Windows operating systems.

Added Stackless 2.5.2 support December 2008

Added Stackless 2.5.2 support to Python Bug Validator.
Added Stackless 2.5.2 support to Python Coverage Validator.
Added Stackless 2.5.2 support to Python Memory Validator.
Added Stackless 2.5.2 support to Python Performance Validator.
Added Stackless 2.5.2 support to Python Thread Validator.

Darmstadt Dribblers August 2008

Darmstadt Dribblers come 4th (24 competitors) in the world championship for humanoid robotic competitors with their Isra robot. Isra’s performance was in part due to the improvements made by using Performance Validator to profile the code for Isra. Find out more about the Dribblers on the Software Verification blog.

Sebastian Petters had this to say about Performance Validator:

"From July 14. to 20. we participated in the RoboCup World Championship in Suzhou, China with our humanoid robots. Thanks to your software we were able to identify and remove some bottlenecks in our application. Due to code and algorithm improvements based on the analysis with Performance Validator we could raise the number of processed frames per second from about 4-5 to 15-17 which make a huge difference in our highly dynamical environment.

Performance Validator has become an irreplaceable tool for our project!"

Added Firefox 3.0 support July 2008

.Net Coverage Validator 1.0 is released.
.Net Memory Validator 1.0 is released.
.Net Performance Validator 1.0 is released.
Added Firefox 3.0 support to JavaScript Bug Validator
Added Firefox 3.0 support to JavaScript Coverage Validator
Added Firefox 3.0 support to JavaScript Memory Validator
Added Firefox 3.0 support to JavaScript Performance Validator

All software tools updated April 2008

All software tools updated to provide column sorting hints with direction arrows and column colour hinting,
settings dialogs reworked to provide improved layout, tree/grid controls modified to provide a single unified approach
across all tools, colour and resizing repainting changes to improve visual appeal.

Java Memory Validator updated December 2007

Java Memory Validator updated to use JVMTI for use with modern JVMs.

New tools November 2007

Visual Studio 2008
Added Visual Studio 2008 support to Bug Validator
Added Visual Studio 2008 support to Coverage Validator
Added Visual Studio 2008 support to Memory Validator
Added Visual Studio 2008 support to Performance Validator
Added Visual Studio 2008 support to Thread Validator

Java
We have updated some of our Java tools to support both the JVMPI interface (for use with older JVMs) and the JVMTI
interface (for use with modern JVMs).

Java Bug Validator updated to use JVMTI for use with modern JVMs.
Java Coverage Validator updated to use JVMTI for use with modern JVMs.
Java Performance Validator updated to use JVMTI for use with modern JVMs.
Java Thread Validator updated to use JVMTI for use with modern JVMs.

ASP.Net support October 2007

Added ASP.Net support to .Net Coverage Validator
Added ASP.Net support to .Net Memory Validator
Added ASP.Net support to .Net Performance Validator

Memory snapshot August 2007

Added a memory snapshot user interface and C# API to .Net Memory Validator
Added a memory snapshot user interface and Java API to Java Memory Validator
Added a memory snapshot user interface and JavaScript API to JavaScript Memory Validator
Added a memory snapshot user interface and Lua/C API to Lua Memory Validator
Added a memory snapshot user interface and Python/C API to Python Memory Validator
Added a memory snapshot user interface and Ruby/C API to Ruby Memory Validator

.Net Coverage Validator June 2007

.Net Coverage Validator enters public beta.
.Net Performance Validator beta updated to line timing.

JavaScript software tools April 2007

All JavaScript software tools updated to support XulRunner as well as Firefox and Flock. Read full story

Support .Net 2.0 March 2007

.Net Memory Validator beta updated to support .Net 2.0
.Net Performance Validator beta updated to support .Net 2.0
VM Validator updated to support .Net 2.0
Memory Validator updated to support .Net 2.0
Coverage Validator updated to support .Net 2.0
Performance Validator updated to support .Net 2.0

Support Python 2.5 February 2007

All Python software tools updated to support Python 2.5.

All JavaScript software tools updated to support loading of code via eval() and dojo.require().

First steps into the .Net world January 2007

Our first steps into the .Net world. Two new software tools for .Net based upon our existing tools Memory Validator and
Performance Validator.

.Net Memory Validator enters public beta.
.Net Performance Validator enters public beta.

A busy month October 2006

A busy month – many software tools released from beta into production, plus a few industry products to be the first of
their kind for the JavaScript, Lua, Python and Ruby scripting languages.

Java Memory Validator 1.0 is released.

JavaScript Coverage Validator 1.0 is released. This is the first commercial software tool for providing code coverage for JavaScript applications.

JavaScript Memory Validator 1.0 is released. This is the first commercial software tool
for providing memory analysis for JavaScript applications.

JavaScript Performance Validator 1.0 is released. Although not the first commercial profiler
for JavaScript applications this is the first native profiler for JavaScript applications – monitoring performance from outside of the JavaScript environment rather than using inefficient wrapper functions to perform the work.

Python Memory Validator 1.0 is released. This is the first commercial software tool
for providing memory analysis for Python applications.

Ruby Memory Validator 1.0 is released. This is the first commercial software tool
for providing memory analysis for Ruby applications.

Lua Coverage Validator 1.0 is released. This is the first commercial software tool
for providing code coverage for Lua applications.

Lua Performance Validator 1.0 is released. This is the first commercial performance
profiling software tool for Lua applications.

Memory validation August 2006

Lua Memory Validator enters public beta

A beta April April 2006

Perl Bug Validator enters public beta.
Perl Coverage Validator enters public beta.
Perl Performance Validator enters public beta.

Web site launch March 2006

New web site launched for Software Verification Limited.

PHP Bug Validator enters public beta.
PHP Coverage Validator enters public beta.
PHP Performance Validator enters public beta.

Many software tools released from beta into production December 2005

A busy month – many software tools released from beta into production, plus a few industry products to be the first of
their kind for the Python and Ruby scripting languages.

As if that is not enough we also release three software tools for
JavaScript into beta.

Performance Validator 2.0 is released.
Thread Validator 1.0 is released.
Java Coverage Validator 1.0 is released.
Java Performance Validator 1.0 is released.
Java Thread Validator 1.0 is released.

Python Coverage Validator 1.0 is released. This is the first commercial software tool
for providing code coverage for Python applications.

Python Performance Validator 1.0 is released. This is the first commercial software tool
for providing performance profiling for Python applications.

Ruby Coverage Validator 1.0 is released. This is the first commercial software tool
for providing code coverage for Ruby applications.

Ruby Performance Validator 1.0 is released. This is the first commercial performance
profiling software tool for Ruby applications.

JavaScript Memory Validator enters public beta.
JavaScript Bug Validator enters public beta.
JavaScript Coverage Validator enters public beta.

Lua and JavaScript beta October 2005

JavaScript Performance Validator enters public beta.
Lua Bug Validator enters public beta.
Lua Coverage Validator enters public beta.
Lua Performance Validator enters public beta.

Menory beta July 2005

Python Memory Validator enters public beta.
Ruby Memory Validator enters public beta.

Java beta May 2005

Java Memory Validator enters public beta.

Ruby and Python betas December 2004

Java Bug Validator enters public beta.
Python Thread Validator enters public beta.
Ruby Bug Validator enters public beta.
Ruby Coverage Validator enters public beta.
Ruby Performance Validator enters public beta.
Ruby Thread Validator enters public beta.

Python Bug Validator public beta March 2004

Python Bug Validator enters public beta.

Python beta March 2003

Python Coverage Validator enters public beta.
Python Performance Validator enters public beta.

Beta news January 2003

Performance Validator enters public beta.

Coverage Validator 1.0 is released December 2002

The release of our first code coverage software tool, Coverage Validator.

Coverage Validator 1.0 is released.

More beta news November 2002

C++ Bug Validator enters public beta.

BetaAugust 2002

Coverage Validator enters public beta.
Thread Validator enters public beta.
Java Thread Validator enters public beta.

DCubed Limited July 2002

DCubed Limited (CAD part vendor) take delivery of a site license for Memory
Validator
.

SolidWorks Corporation July 2002

SolidWorks Corporation (Mechanical CAD vendor) take delivery of a site license
for Memory Validator.

Memory Validator 2.0 31st March 2002

Memory Validator version 2.0 is released. To mark the launch copies of Memory
Validator are given away as prizes on the Code Project website.

Memory analysis tool released1st March 2002

VM Validator virtual memory analysis tool released.

Cambridge artist Glynn Gorick is commisioned September 2001

Cambridge artist Glynn Gorick is commisioned to provide artwork for Memory
Validator
2.0. Glynn is an established artist with clients in many corporate
sectors. Glynn specialises in providing artwork related to biology and natural
processes.

Panorama Theme by Themocracy