|
This is "Advanced/Build options" page in EurekaLog project's options.
Build options
This page allows you to specify additional project build options.
1. "Reduce file size" option removes relocation table from file. This reduces file's size for about 10% (however, enabling EurekaLog also increases file's size).
It's recommended to always keep this option on.
Note: this option have no effect for DLL and packages. It is also ignored for executables marked with ASLR.
Technical explanation When you compile a DLL (or a package which is a Delphi-specific DLL in disguise), the linker includes what is known as a relocation table. This table includes information about what addresses must be fixed up by the OS loader in the (likely) event that the DLL must be loaded at a different address than its intended-at-compile/link-time base address. You see, all DLLs come with a base address that is the "ideal" loading address of that module. The OS will try to load the DLL at this address to avoid the overhead of runtime rebasing (patching the in-memory pages of the DLL forces it to be paged in from disk and prevents cross-process sharing of the DLL pages). That's why you should set the Image base option in the Linker page of the project options of DLL and package projects. The default Image base that Delphi uses is $00400000 for both applications, DLLs and packages - and thus by default all DLLs and packages will need to be rebased - as that address is reserved for the process' EXE file.
The implication is that an EXE file will always be loaded at the fixed virtual address $00400000 and that it will never need to be rebased. Alas, it doesn't really need its relocation table and we can safely remove it, shrinking the size of the .EXE without affecting its behavior or performance.
See also: External tools options page.
2. "Check file corruption" option adds check for file corruption in your project.
EurekaLog will do nothing when this option is disabled (which is a default).
If you enable this option:
If the check failed (i.e. your executable was modified), EurekaLog will display the appropriate message and shutdown your application immediately:
EurekaLog detected changes in the executable file
You can use this option to ensure that your compiled executable wasn't modified or corrupted.
Turn on for additional checks. Turn off for best performance.
Warning: do not enable this option, if you're going to protect the compiled executable with executable protector, to pack it with executable packer, or to alter it in any way (except digitally signing). All 3 cases are not compatible with this option (except digitally signing). Moreover, its use is usually redundant: protecting or packing the compile file has their own analogs of EurekaLog's "Check file corruption" option, so this option is not needed at all.
Important: digital signature verification may be slow, because certificate could be checked for revocation - which will cause network access. Use this feature with caution when digitally signing the compiled file.
Notes:
See also: External tools options page.
3. "Use low-level hooks" option allows or forbids using of low-level hooks.
Using low-level hooks allows you to capture low-level information such as CPU state. Low-level hooks are also required for additional WER functionality. However, a documented way of installing low-level hook is available only in Windows XP and later. For older OS - undocumented hack will be used. If this option is unchecked - EurekaLog will use RTL functionality and will not install low-level hooks.
Notes:
Turn on for best detalization. Turn off for best compatibility.
See also: External tools options page.
See also:
| ||||||||||||||||||||||||||||