Changes in v4

Version 3 End Of Life Notice

Version 3 of vbWatchdog was released in June 2013. 9 years later... many free updates have been made available since that release, but it is now time to start a new chapter.

As of today, Friday 15th July 2022, there will be no further updates to version 3 of vbWatchdog. The final release of version 3 is v3.9.2.

We have lots of new plans for vbWatchdog going forward, and I look forward to delivering them to you, and hearing your feedback and feature requests in the coming months.

I would like to take this opportunity to thank our cusomters for their loyalty and amazing support over the years.

Wayne Phillips.

How to upgrade

Significantly discounted pricing is available to all existing customers.  Please tick the 'Upgrading from SimplyVBA v1 or vbWatchdog v2/v3' box to see the discounted prices.

Note: Until 31st August 2022, the upgrade discount is 50%.  After that time, the discount will revert to the normal 40%.

Customers that are entitled to a free upgrade to version 4 will be e-mailed by 22nd 29th July 2022.  If you believe that you've been missed, please get in touch with us to discuss.  You will only be entitled to a free upgrade if one of the following is applicable:

  • You are on an active 12 month premium support contract for vbWatchdog
  • You purchased vbWatchdog v3 on or after July 15th 2021.
  • You purchased SimplyVBA Global Error Handler v1 with the 'lifetime upgrades' option.
  • If you have changed e-mail addresses, please just contact us with some proof of purchase and we will get you setup on version 4.

    If you are entitled to a free upgrade to v4, please use the download link provided in your receipt email for the earlier version, and you will find a new download link for the v4 edition of vbWatchdog.

Backwards Compatibility

Version 4 is fully backwards compatible with Version 3.  There are no breaking changes, so you can upgrade to version 4 without changing any code.

Updates in Version 4 so far

  • improved: all vbWatchdog DLLs and MSI files are now code-signed

  • The main vbWatchdog MSI installation files, and the developer DLL files are all now code-signed.  This should help ease installation of the product and prevent some false-positive anti-virus detections.

  • improved: built-in error dialogs are now DPI-aware
  • improved: Line numberer IDE addin is now DPI aware, and adjusts width of the injected bar to better fit the content

  • The built-in error dialogs of previous versions of vbWatchdog were not DPI-aware, as a result, the dialog proportions were often not correct on high-DPI systems.  Similarly, the ToogleLineNumbers VBE addin bar was usually too small on high-DPI systems, often truncating the text.

  • improved: vbWatchdog now compiled with latest LLVM backend compiler for better optimizations

  • The toolchain we use to build vbWatchdog has been upgraded to support the latest LLVM backend compiler, and as a result this enables some enhanced performance of the vbWatchdog internal code.

  • added: 245 new algorithm patterns for use with ErrExDialogOptions fill types (patterns 9-254)

  • We've added many new fill patterns for use with the built-in error dialog in this release.  Version 3 only offered 9 different patterns.  Version 4 now includes 254 in total.



    The two colours chosen in this animation are constrasting to emphasise the pattern detail.  In the real world, you'll probably want to choose two similar, more subtle colours :)

  • added: ErrEx.HostPath (property-get, String)

  • This property returns the full path to the host process executable.  For example, "C:\Program Files (x86)\Microsoft Office 2016\MSACCESS.EXE"

  • added: ErrEx.HostVersion (property-get, String)

  • This property returns the full version number of the host process executable, as a String type.  For example, "16.0.15225.20288"

  • added: ErrEx.ProcessUsername (property-get, String)

  • This property returns the username of the user that launched the host process.

  • added: ErrEx.ProcessID (property-get, Long)

  • This property returns the process ID of the executing process, as a Long type.  This is the same number that is listed in Task Manager (PID).

  • added: ErrEx.ProcessThreadID (property-get, Long)

  • This property returns the process thread ID number, as a Long type.

  • added: ErrEx.ProcessUptime (property-get, String:"D:HH:NN:SS")

  • This property returns the length of time since the executing process was launched, as a String in format "D:HH:NN:SS".  So for example, if the process has been running for 5 days, 14 hours, 3 minutes and 45 seconds, the value returned would be "5:14:03:45"

  • added: ErrEx.SystemUptime (property-get, String:"D:HH:NN:SS")

  • This property returns the length of time since the operating system was started, as a String in format "D:HH:NN:SS".  So for example, if the system has been running for 35 days, 5 hours, 40 minutes and 2 seconds, the value returned would be "35:05:40:02"

  • added: ErrEx.SysInfoCPUID (property-get, String)

  • This property returns the CPUID of the processor installed in the system.  For example, "AuthenticAMD :  AMD Ryzen 9 5950X 16-Core Processor"

  • added: ErrEx.SysInfoOSVersion (property-get, String)

  • This property returns the version information string about the operating system.  For example, "Windows 10 (Build 19043)"

  • added: ErrEx.SysInfoPhysicalRam (property-get, Double)

  • This property returns the amount of physical RAM installed in the system, in bytes.

  • added: ErrEx.SysInfoPhysicalRamUsed (property-get, Double)

  • This property returns the amount of physical RAM that is in-use in the system, in bytes.

  • added: ErrExCallstack.IsWithinFinallyBlock boolean property-get

  • This is a new property, accessible via the ErrExCallstack object to determine whether the executing position in a callframe is considered to be inside (i.e. below) an ErrEx.Finally block.

  • fixes

    • fixed: ErrExCallstack.ProjectConditionalCompilationArgs and ErrEx.SourceProjectConditionalCompilationArgs and source code parsing with conditional arguments on latest VBE7.1 builds
    • fixed: issue relating to OnErrorUnwind and subsequent errors in ErrEx.Finally block coming through as OnErrorGotoLabel instead of OnErrorInsideFinally