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. If you enable this option, EurekaLog will calculate a CRC checksum of the compiled file and store it inside file. EurekaLog will also read this checksum from file on its startup (launch). If your executable was modified, EurekaLog will display an appropriate message and shutdown your application immediately:
EurekaLog detected changes in executable file
You can use this option to ensure that your code wasn't modified.
Turn on for additional checks. Turn off for best performance.
Warning: do not enable this option, if you're going to digitally sign your executable, to protect it with executable protector, or to pack it with executable packer. All 3 cases are not compatible with this option. Moreover, its use is redundant: each of 3 actions contain their own analogs of EurekaLog's "Check file corruption" option, so this option is not needed at all.
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:
|