If all conditions (EurekaLog is enabled in your application AND EurekaLog IDE Expert is installed) are true - then everything should be OK (see also: compilation from command line). You can confirm this by analyzing your executable module after compilation.
Open Start / Programs and find EurekaLog folder:
EurekaLog's menu items in Start menu
Find the "EurekaLog PE Analyzer" tool and run it (it should be in the "Tools" subfolder). Select your executable file with the help of "..." button and click on "Analyze" button.
Note: you can also run PE Analyzer tool via Tools \ EurekaLog \ PE Analyzer menu item in IDE (see also).
If your application was compiled properly, then you should see "Is EurekaLog image: True" and information about EurekaLog version:
Typical output from Module Informer for correct compiled file
Make sure that this information matches your expectations:
|1.|| Compilation date is now (i.e. you're not looking into old file);|
|2.|| "Is EurekaLog image" = True;|
|3.|| EurekaLog code version matches the installed version of EurekaLog, for example: "22.214.171.124 update 2 Professional" (i.e. your installation is not messed up with new and old files);|
|4.|| EurekaLog data version is lower than EurekaLog code version, match it (up to first 3 numbers), or is 8.0.00; For example, code version = "126.96.36.199" and data version ="7.0.01" is OK, but code version = "188.8.131.52" and data version = "7.0.02" is not;|
|a.|| Note: modern EurekaLog data format was supposed to be used in EurekaLog 8, but is currently used by EurekaLog 7. Therefore, data format version of 8.0.00 is OK.|
|5.|| There are EurekaLog units inside (use detalization level "Units");|
|6.|| Code and Data Compile IDs must match exactly;|
|7.|| If you are rebuilding application together with EurekaLog's source code (e.g. Enterprise only) - be sure that code and data machine IDs match each other;|
|a.|| Otherwise (if you are using precompiled files) "Code Machine ID" will be equal to EurekaLog's build server (D86FE1F598FB4242A796223D6909B720) and never changes. Data machine ID will match ID of your PC.|
|•||Machine ID is just a random string initialized by EurekaLog's installer, and then it stays unchanged. You can use it to identify if files were build on the same machine / build server. For example, if you know ID of your build server - you can verify if your executable was indeed compiled on the build server. Machine ID can be found inside Process.log / InstallationDiagnostic.log files of your EurekaLog installation;|
|•||Project ID is the GUID from properties of your Delphi / C++ Builder project. It is used by EurekaLog to identify your projects (e.g. when submitting reports to bug tracker, viewing reports in Viewer, etc.);|
|•||Compile ID is a random string created on each compilation (e.g. creation of exe file). Think of it as "version" or "build". It is used by EurekaLog to identify your builds (e.g. when submitting reports to bug tracker, viewing reports in Viewer, etc.). The exact value should not matter to you, as it will be renewed on each compilation; the important part is that both code and data values must be exactly the same. Otherwise something went seriously wrong.|
You can also change "General info" to other (more descriptive) positions. Thus, you can inspect injected EurekaLog options, used units and other information.
You can also use the tool from the command line (use the ModuleInfomer.exe file from \Bin or \Bin64 sub-folders of your EurekaLog installation):
PE Analyzer is called from the command line
You can pass full file name (with path) to analyze as first argument with /analyze=filename. You can also optionally specify level of detalization as second argument:
|•||0 - minimal generic info only;|
|•||5 - routines details (default).|
ModuleInformer.exe will return an exit code depending on the result:
|•||$20040000 (537133056) - no EurekaLog in the specified executable;|
|•||$20040001 (537133057) - the executable has only EurekaLog's data (e.g. packages, lightweight DLLs);|
|•||$20040002 (537133058) - the executable has both EurekaLog's code and data;|
|•||$80004005 (2147500037) - an error has occurred.|
Note: ModuleInformer.exe is not a console application. It is a typical VCL Forms application. When executing an application that is a 32-bit GUI application, CMD.EXE does not wait for the application to terminate before returning to the command prompt. Therefore, if you are going to call the tool from the command line - you may want to wait for it to complete analyzing. Use start /wait command for that. This new behavior does NOT occur if executing within a command script. It is also not required if you call ModuleInformer.exe explicitly from your own code, as you can always wait for the process to exit. For any other usage cases - you can always call CMD.EXE as cmd.exe /C start /wait command.
1. If there is something wrong with executable - check output from your compilation:
IDE's Messages / Build window - this is output from a normal successful compilation
2. If there is no problem with compiled executable, but it still doesn't work as expected - then you can enable debug mode to see what's going on.
Build date: 2021-10-15
Last edited: 2021-02-09
The documentation team uses the feedback submitted to improve the EurekaLog documentation.
We do not use your e-mail address for any other purpose.
We will remove your e-mail address from our system after the issue you are reporting has been resolved.
While we are working to resolve this issue, we may send you an e-mail message to request more information about your feedback.
After the issues have been addressed, we may send you an email message to let you know that your feedback has been addressed.
Permanent link to this article: https://www.eurekalog.com/help/eurekalog/verifying_eurekalog_enabling.php