23 November, 2018

EurekaLog and 10.3 Rio

Current version of EurekaLog is compiled against beta version of RAD Studio 10.3, which is not binary compatible with the final release of 10.3 Rio. An updated version of EurekaLog will be ready within few days.

21 November, 2018

Black Friday and Cyber Monday Sale

We are pleased to announce Black Friday and Cyber Monday 25% discount on any of our EurekaLog products using the coupon code found below.

The sale starts on Black Friday (23 November) and ends at end of Cyber Monday (26 November).

Enter this code when paying for the item on our web site:

BFCM2018



Existing customers with valid or expired licenses can log in and purchase upgrades, new licenses and extensions here:

https://www.eurekalog.com/login.php

Use the login credentials we sent you at purchase time.



New customers (without existing licenses) can use the discount code here:

https://www.eurekalog.com/buy.php

06 November, 2018

How to deal with send failures in EurekaLog

You (as developer) is interested in getting as much bug reports as possible. First, you have to select a reliable send method for delivering reports from users to you. However, it may be not enough. Sending may fail for many reasons:
  • Unplugged network cable;
  • Turned off wi-fi;
  • Bad wi-fi signal strength;
  • Bad network settings (e.g. DNS, gateway, etc.);
  • Blocked by firewall;
  • Problems on ISP's side (maintenance, etc.);
  • Changed settings on your receiving side (e.g. you have closed account in your bug tracker);
  • etc.
Bug report will not reach you in all these cases. Then what?

Well, we have several techniques for dealing with network delivery problems.

Setting up fallback send methods

First, you may set up multiple send methods. You arrange them in a preferred order:


Two send methods were set up

EurekaLog will try to send report via first defined send method - say, a bug tracker (FogBugz in the screenshot example above). If sending fails for whatever reason - EurekaLog will attempt to send via next available send method (SMTP client in the screenshot example above). And so on - until send succeeds or no more send methods are set up.

We usually recommend to use some bug tracker; followed by SMTP client; and Simple MAPI as last resort measure.

Saving bug report's backup

Second, if send fails (meaning all send methods) - EurekaLog may be set up to copy bug report file to My Documents folder. See "Save bug report copy to My Documents folder" option. The user will be notified about it (assuming you have set up a failure message to be visible). The idea is that user can pick up this file and send it to you (developer) manually via any available means. You may change backup file location and/or file name by using OnCustomFileName event handler (you are interested in AFileType = ftZIPCopy).

Additionally, report can be copied to the clipboard (both as file and as text simultaneously) - via "Copy bug report to clipboard" option. The idea is that user will be able to launch e-mail client (or go to support form on your web-site, etc.) and paste report into message.

Perform custom recovery

Finally, you may assign event handler to be called on send failure and perform you own custom actions (like saving bug report file to some sort of storage). For example, you may assign OnExceptionAction event handler and look for (AEurekaAction = atSent) and (AExecute = False). AAdditionalInfo will hold error message from sending. You may perform your recovery, and even switch AExecute to True to indicate successful send (so error message and creating backup will be skipped). If you did not alter "success" state of failed send - then OnExceptionError will be raised with AEurekaAction = stSent. You may perform your recovery there, and even swithc ARetry to True to retry sending.

See also: How to get file name for bug report?

Automatic resending of failed bug reports

EurekaLog do not have such feature, because of many implementation issues.

If send fails - EurekaLog can add report to some sort of offline storage. That is not an issue. Now, many questions arise:
  • How should EurekaLog limit size of this storage?
  • How often should EurekaLog clean it?
  • What if application is uninstalled: who will clear the storage?
  • How uninstaller will know about EurekaLog's storage location?
  • Who and when will resend reports from storage?
  • Should EurekaLog resend on application's startup?
  • Should EurekaLog resend when another exception occur?
  • What if application is non-GUI?
  • What if startup time is important?
  • What if next exception never occur?
  • Should EurekaLog monitor network for availability?
  • Use task scheduler?
  • What if application is a DLL or COM object, e.g. it can not run by itself to resend reports?

There are too many questions without good answers. That is why this aspect is currently left for your own implementation. You may create a subfolder in %APPDATA% folder; copy backups in that folder; resend when you can; may be create a standalone send application; clear subfolder when necessary.

29 October, 2018

Sending e-mails with EurekaLog

EurekaLog's code can be used to easily send arbitrary e-mails from your code.

29 June, 2018

EurekaLog 7.7 is out

We are pleased to announce the availability of the new 7.7 version.

19 March, 2018

Support for RAD Studio 10.2.3 Tokyo is available in EurekaLog

We are pleased to announce the availability of support for RAD Studio 10.2.3 in EurekaLog.

EurekaLog adds support for Redmine bug tracker

We are pleased to announce native support for Redmine bug tracker.

20 November, 2017

30% discount on EurekaLog

We are pleased to announce Black Friday and Cyber Monday 30% discount on any of our EurekaLog products using the coupon code found below.

The sale starts on Black Friday (24 November) and ends at end of Cyber Monday (27 November).

Enter this code when paying for the item on our web site:

BFCM2017



Existing customers with valid or expired licenses can log in and purchase upgrades, new licenses and extensions here:

https://www.eurekalog.com/login.php

Use the login credentials we sent you at purchase time.



New customers (without existing licenses) can use the discount code here:

https://www.eurekalog.com/buy.php

21 July, 2017

EurekaLog 7.6 is out

We are pleased to announce the availability of the new 7.6 version.

08 July, 2017

New license checks in EurekaLog installers

All non-freeware EurekaLog installers will use addtional license check since 7.5.1.205 build.

11 May, 2017

Using Threads Snapshot tool as postmortem debugger

This article will show you how to register and use Threads Snapshot tool to capture call stacks of unhandled exception crash of any process.

03 April, 2017

RAD Studio 10.2 Tokyo support is available

We have just released a new EurekaLog build 7.5.1.151 with RAD Studio 10.2 Tokyo support.

Changelog (since 7.5.1.0):
  1. Important: Debug information format was completely changed. Be sure to test your applications
  2. Important: Added a major upgrade to bug tracker code. Be sure to test your applications
  3. Important: BugID generation alg was changed. Be sure to test your applications
  4. Important: EurekaLog will now store configuration in .eof file instead of .dof, .bdsproj, .dproj, etc.
  5. Added: Support for 10.2 Tokyo
  6. Added: ecc32 will now modify uses list in your .dpr file to match specified configuration
  7. Added: --el_prepare switch is added to be used when --el_alter_exe is used
  8. Added: New option to stip all string names from debug information and store it in external file
  9. Added: Debug information's and ZIP's passwords are now saved locally on developer machine - to be used by application and Viewer (this simplifies local debugging when passwords are set). OnPasswordChange event will not be called
  10. Added: New "--el_password=debug-info-password" command-line option can be passed to application to decrypt encrypted debug information. OnPasswordChange event will not be called
  11. Added: Our own implementation of XML, XML-RPC, and SOAP. We no longer use RTL's implementation, therefore now we have support for bug tracker's API even on old IDEs
  12. Added: New options for bug trackers (new fields, append call stack instead of full bug report, links, text limits)
  13. Added: A helper "Connect" button in EurekaLog project options dialog to retrieve project names, users, field names, components, areas, and other info for bug tracker
  14. Added: Working hyper-links support in bug tracker success message via TaskDialogs (Vista+)
  15. Added: BugID tab in EurekaLog project options dialog - allowing you to customize uniqueness without writing OnCustomBugID event handler
  16. Added: New column in call stack: "Source" (e.g. actual .pas file name)
  17. Added: Threads selection to hang detection page
  18. Added: Support for MessageBox from NT services
  19. Added: "Lookup Error" option in Viewer - there is a new toolbar, as well as new context menu item for "General" tab
  20. Added: ELogging unit implements log capabilities. EurekaLog will stream log into CodeSite-compatible format. Currently it has no UI control. Use ELogReopen function to stream log to the specified file
  21. Added: (Delphi only) EurekaLog units in uses list are wrapped into IFDEF block
  22. Added: Call stack, modules and processes use different colors now. For call stacks: red indicates exception line, black - stack frame entry (positive), grey - RAW (could be false-positive), other colors - service entries
  23. Added: Support for DataSnap applications. Do not forget to enable EurekaLog for background threads (either as "Enable for RTL threads" or as SetEurekaLogStateInThread in OnConnect handler)
  24. Added: Handler name property for exception info and ability to filter with it. Handler name indicates handler which is processing the exception, it can be used to distinguish between VCL, Thread, DataSnap exceptions, etc.
  25. Added: Ability to filter by descendant classes
  26. Added: ACompareForCount argument to DumpAllocationsToFile routine
  27. Fixed: Reduced ecc32/emake memory footprint, thus allowing to post-process larger projects
  28. Fixed: Debug information design-time performace optimizations (reduced compilation time)
  29. Fixed: Debug information run-time performace optimizations (reduced startup time)
  30. Fixed: Minor optimizations for call stack to string render
  31. Fixed: Display bug in detailed EurekaLog dialog tabs when not all tabs were showing
  32. Fixed: [10.1 Berlin] Weak references are no longer detected as leaks
  33. Fixed: A "recursive area removed" mark may be left in call stack even if area's items were filtered out
  34. Fixed: Fatal errors (e.g. panic mode) now properly set terminate option in dialogs
  35. Fixed: Possible crash on startup when using certain 3rd party memory managers
  36. Fixed: Possible crash when EurekaLog's debug mode is enabled
  37. Fixed: XML header of bug reports
  38. Fixed: Added workaround for OTA bug when {$E ext} is used in project
  39. Fixed: (C++ Builder only) Possible crash when handling certain exceptions
  40. Fixed: Firebird Embedded in Viewer was upgraded to 2.5.6. This solves a rare encoding problem when using Firebird backend
  41. Fixed: (Delphi 2005 and earlier) Bug in workaround for http://qc.embarcadero.com/wc/qcmain.aspx?d=3018
  42. Fixed: Checkboxes not respecting default state when switching between dialogs (e.g. MS Classic -> EurekaLog Detailed)
  43. Fixed: Visual glitches in EurekaLog dialogs when VCL styles are used
  44. Fixed: Compatibility with 3rd party software of password-encrypted ZIPs
  45. Improved: New call stack/assembler encryption when encrypt password is set for debug info
  46. Improved: Better call stack filtering from EL service routines when encryption is enabled
  47. Improved: Any share violation error during compilation will report which process is holding the file
  48. Changed: ecc32.exe and emake.exe are the same file for all IDEs. Current IDE is selected based on ecc32/emake file location or via --el_ide=num command-line option
  49. Removed: Web-based bug tracker support

22 November, 2016

Black Friday/Cyber Monday Sale

Mark you calendar! A big EurekaLog sale is coming soon!

Take a 30% discount on any of our EurekaLog products and subscriptions using the coupon code found below.

The sale goes into effect on 00:01 on Friday, 25 November 2016 and ends at 23:59 on 28 November 2016. All times are from the Eastern USA (UTC-5) time zone.

Enter this code when paying for the item on our web site:

BFCM2016



Existing customers with valid or expired licenses can log in and purchase upgrades, new licenses and subscription extensions here:

https://www.eurekalog.com/login.php

Use the login credentials we sent you at purchase time.



New customers (without existing licenses) can use the discount code here:

https://www.eurekalog.com/buy.php

18 August, 2016

EurekaLog 7.5 is out

We are pleased to announce the availability of the new 7.5 version.

26 January, 2016

EurekaLog 7.4 is out

We are pleased to announce the availability of the new 7.4 version.