EurekaLog is a tool for Delphi and C++Builder that gives your application the power to catch every exception and memory/resource leak, generating a detailed log of the call stack (with unit, procedure and line number), optionally sending you a copy of each log entry via email or the Web via the most used Web Bug-Tracking tools (as Mantis, BugZilla, FogBugz, and JIRA).EurekaLog represents the most advanced exception and memory leaks logger technology available for Delphi/C++Builder developers.
To learn more about EurekaLog, please visit our website at:
https://www.eurekalog.com
To download a demo, please visit:
https://www.eurekalog.com/downloads.php
If you would like to purchase a new license, please visit:
https://www.eurekalog.com/buy.php
Important Note: Each modern EurekaLog installer supports IDEs starting with Delphi 5 and up to the latest IDE - about 19 IDEs in total.
Latest supported IDE is:
- EurekaLog 7.8.1.0+ is compiled against RAD Studio 10.3.3
- EurekaLog 7.7.8.60-7.8.0.0 is compiled against RAD Studio 10.3.2
- EurekaLog 7.7.8.14-7.7.8.58 is compiled against RAD Studio 10.3.1
- EurekaLog 7.7.7.0-7.7.8.13 is compiled against RAD Studio 10.3.0 (RTM)
- EurekaLog 7.7.5.0-7.7.6.0 is compiled against RAD Studio 10.3 BETA
There are various binary incompatibilities between different 10.3.x builds. More info can be found here.
Changes in 7.8 build:
- Added: YouTrack support
- Added: Global resource tracking (with option)
- Added: Selectable categories for resource tracking
- Added: "Log application's exits" option
- Added: New options for bug report content: UAC, evelation, admin, memory (RTL, RAM, private, virtual)
- Added: Interfaces information lookup for leaks and memory errors
- Added: Added stack frames recovery after FPO routine
- Added: New "Consecutive Processing" multi-threading option to replace various "Pause" options
- Added: "Message" property to exception filters
- Added: HTML web dialog now supports XML and JSON
- Added: [C++ Builder] Ability to show direct caller of memory functions even if RAW stack tracing is not used (leaks detection)
- Added: Leaks checking for "Lightweight DLL" profile
- Added: More information for out of memory exceptions
- Added: Support for Get/SetThreadDescription API
- Added: Exception2HRESULT function in EBase unit
- Added: %_EL_Last_Failure% environment variable can be used to indicate send failure reason when chaining few send methods together
- Added: Preload debug info for some important core BPLs/DLLs
- Added: Viewer can scale screenshot's preview. We recommend to include 5.9 (Display DPI) in your bug reports, so Viewer can scale screenshot automatically
- Added: Now EurekaLog is able to tell the immediate caller of kernel32.RaiseException (mostly used for software non-Delphi exceptions)
- Added: Retrieving info about exceptions from delayed DLL imports
- Added: Warnings in EurekaLog's project options dialog for disabled EurekaLog
- Fixed: Various issues with cross-module exceptions
- Fixed: Now ecc32 will also look for dcc32 in %PATH%
- Fixed: Some DPI scaling issues for extreme DPI/fonts
- Fixed: Greatly reduced chances to lock while taking call stacks of external threads
- Fixed: Shared logging in same process from different executable modules
- Fixed: [ANSI only] A wrong charset may be used in fonts
- Fixed: Check for a valid memory address / block
- Fixed: [C++ Builder] Some line numbers may be missing
- Fixed: Message about fatal/configuration error is not visible if dialog set to "None"
- Fixed: Possible crash on shutdown when memory leaks are used with DLL exports provider
- Fixed: Parent window for send dialogs (used mostly in (S)MAPI send methods)
- Fixed: Unified "Append bug report" option for various mail send methods; now this option will not remove bug report file from attaches
- Fixed: Loading EurekaLog 4-6 debug format in Address Lookup tool
- Fixed: [LLVM/CLang] Added workaround for Exception.RaisingException is not being called
- Fixed: [LLVM/CLang] Added workaround for ExceptionAddress being equal to nil for software exceptions
- Fixed: Redmine now supports unlimited amount of projects
- Fixed: Minor JSON text parsing issue
- Fixed: Minor issue in logging code
- Fixed: [Enterprise only] Possible crash when recompile EurekaLog with non-English locale
- Fixed: IDE may fail to display RTL/VCL units when double-clicking on call stack in EurekaLog's dialogs and Viewer
- Fixed: Now screenshot will not be captured if sending is disabled
- Fixed: A rare stack overflow when getting debug information
- Fixed: False-positive memory leak after ignored resource leak
- Fixed: "Handler" property of exception filters can properly work with multi-values now
- Fixed: Buffer overflow in internal logging code
- Fixed: Minor improvements for internal crash reports
- Fixed: Range check error in JCL debug provider
- Fixed: Built-in icons are converted to RCDATA
- Fixed: Removed ISAPI unit from EurekaLogCore package
- Fixed: Various issues with freeze detection feature in DLLs
- Fixed: Possible range-check error in thread wrapper
- Fixed: Unnecessary label may be visible on MS Classic dialog when text is too large
- Fixed: [C++ Builder] Added __lock_stream leak to know RTL leaks
- Fixed: Added support for JIRA API Tokens (JIRA Cloud no longer accepts passwords)
- Fixed: Added workaround for OpenTools API issues when compiling projects via "Build All Projects" or Build Groups (only for RAD Studio XE and above)
- Fixed: Leaks checks performance optimizations
- Fixed: Wrong unit / routine may open in IDE when double-clicking on EurekaLog's call stack dialog when there are collapsed items
- Fixed: Possible crash in JIRA sender when custom fields contain invalid values
- Fixed: Call stack building for exceptions in routines with broken stack frame
- Fixed: Wrong address may be used in RAW stack dump
- Fixed: Added workaround for TMS Web Core and similar IDE extensions. Additionally, see EurekaLog's help: Advanced topics > Working with configurations > Read-only projects > Non-EurekaLog read-only projects
- Fixed: Added 'System.SimpleShareMem' to list of allowed units before EL units in "uses" clause
- Fixed: Rare crash in TerminateThread when low-level hooks are installed
- Fixed: Minor startup performance improvements
- Fixed: Minor fixes in ecc32/emake
- Fixed: Reseting resource leaks categories
- Fixed: Possible losing GetLastError's value in CreateFileA
- Fixed: A minor memory leak in apps with thread pools (ISAPI, etc.)
- Fixed: Rare crash in DumpAllocationsToFile
- Fixed: Rare crash when using shared memory manager in slave mode and shared memory manager is re-initialized
- Fixed: A minor performance optimization for startup of packaged apps
- Fixed: Source files line breaks
- Fixed: File uploads for JIRA with API Tokens auth
- Fixed: [Regression] Problems with importing old memory options
- Fixed: [Regression] List index out of bounds when changing status in Viewer
- Fixed: [Regression] EUREKALOG symbol is not added correctly when external configuration is used
- Fixed: [Regression] "Pause threads" options did not work properly
- Fixed: [Regression] Rare wrong unmangling values from .map debug info provider
- Fixed: [Regression] Changes in RTL broken generating external *.elsym files
- Changed: "DLL" profile was renamed to "Lightweight DLL"
- Changed: Mem/Res leak add handler is converted to function. Now you can return False to indicate that leak was ignored
- Changed: Leaks checking will now stop collecting leaks info when it reaches 4 times of "Max leaks to report" option. This can cause to report less leaks than "Max leaks to report" - because other collected leaks may be removed later due to grouping (parent/child) or counting (same leaks)
- Changed: Added more internal logging