Compiler Settings for Embarcadero Delphi XE

Applies to AQTime 8.81, last modified on January 18, 2022

This topic explains how to prepare applications created with Embarcadero Delphi XE for AQTime. To learn how to prepare applications created with other Delphi versions, see Compiler Settings for Native Applications.

To prepare a Delphi XE application for AQTime, you must first ensure that it includes debug information. Follow these steps:

  1. Open your Delphi project in Delphi XE.

  2. Activate the configuration that you use to build the debug version of your application. To do this, right-click the Project_Name > Build Configurations > Debug Configuration node in the Project Manager and select Activate from the context menu.

    Note: You can build your application in any configuration, not just in the debug one. We choose the debug configuration to make sure the changes that will be made to compiler settings will not affect the release configuration that is typically used to build the final version of applications.
  3. Choose Project > Options from the main menu to open the Project Options dialog.

  4. In the Build Configuration combo box, select your debug configuration. This will quickly load the settings used for debug builds.

  5. To set the compiler options, select the Delphi Compiler > Compiling category from the tree view on the left of the dialog.

  6. Set the Stack frames option to True in the Code generation group.

  7. To include symbolic debug information, set the Debug information option to True in the Debugging group.

  8. To view the variables, which are local to procedures and functions, set the Local symbols option to True in the Debugging group.

  9. If you want to profile VCL classes, for example, TDataset, set the Use debug .dcus option to True in the Debugging group. Otherwise, AQTime will only be able to profile the classes that are defined in your application.

    Project Options: Compiling

    Click the image to enlarge it.

  10. Switch to the Delphi Compiler > Linking category and set the Debug information option to True:

    Project Options: Linking

    Click the image to enlarge it.

  11. If you do not want to use the Allocation profiler, skip this step.

    Note that the point of the Allocation profiler is not performance. Its point is to track memory allocations and deallocations. To do this, the profiler requires access to the basic VCL objects (TObject and TInterfacedObject). Therefore, the easiest way to provide this access is to turn off the Build with runtime packages option in the Packages category:

    Project Options: Packages

    Click the image to enlarge it.

    If you want to use the Build with runtime packages option (for instance, to control the exe size), you can still use the Allocation profiler. When you include your application in an AQTime project, you will also have to include the <Windows>\System32\RTL150.BPL file.

    To add a module to an AQTime project, press Add Module on the Setup toolbar or select it from the Setup context menu.

  12. Once you have set the compiler and linker options correctly, rebuild your application and it will be ready for profiling. If you are profiling an ActiveX control or a COM server however, you should register its “debug” version in the system (See Profiling COM Applications).

When your application is ready for release, remember to recompile it without debug information to reduce the application size.

Note: AQTime is incompatible with some third-party tools that modify the binary code of your application (for example, those that add a custom exception handling mechanism). An example of such a tool is EurekaLog. We recommend that you profile your application before processing it with such tools.

See Also

Compiler Settings for Native Applications

Highlight search results