Applies to AQTime 8.80, last modified on June 13, 2019

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

To prepare an Embarcadero C++Builder XE application for AQTime, you must first ensure that it includes debug information. Follow these steps:

  1. Open your project in C++Builder XE.

  2. Choose Project > Options from the main menu to open the Project Options dialog.

  3. To set the C++ compiler options, select the C++ Compiler > Debugging category from the tree view on the left of the dialog.

  4. To include symbolic debug information, set the Debug information option to True. In addition, to refer this information to source line numbers, set the Debug line number information option to True.

    Project Options: C++ Compiler > Debugging

    Click the image to enlarge it.

  5. (Optional) To generate stack frames when using the C++ compiler, switch to the C++ Compiler category and set the Standard stack frames option to True.

    Project Options: C++ Compiler

    Click the image to enlarge it.

  6. If you compile your application with CodeGuard enabled, the latter will report errors during the profiler execution. They relate to AQTime hooking code and are not actually errors. We recommend that you disable CodeGuard before profiling your application with AQTime. To do this, switch to the C++ Compiler > Debugging category and set the Enable CodeGuard option to False.

    Project Options: C++ Compiler > Debugging

    Click the image to enlarge it.

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

  8. To include symbolic debug information, set the Debug information option to True. In addition, to refer this information to source line numbers, set the Local symbols option to True.

    Project Options: Delphi Compiler >Compiling

    Click the image to enlarge it.

  9. (Optional) To generate stack frames when using the Delphi compiler, switch to the Delphi Compiler > Compiling category and set the Stack frames option to True.

    Project Options: Delphi Compiler > Compiling

    Click the image to enlarge it.

  10. Switch to the C++ Linker category and set the Full debug information option to True:

    Project Options: C++ Linker

    Click the image to enlarge it.

  11. Switch to the Directories and Conditionals category and check the Library path option. Make sure that the path contains the $(BDSLIB)\$(PLATFORM)\debug folder:

    Project Options: Directories and Conditionals

    Click the image to enlarge it.

  12. Now, if you do not want to use the Allocation profiler, skip this step.

    The point of the Allocation profiler is not performance. Its point is to track memory usage. If you need to have your application support the Allocation profiler, you must make sure that AQTime has access to the VCL binary code. The easiest way to add support for the Allocation profiler is to set the Link with Dynamic RTL option from the C++ Linker category to False and then uncheck Build with runtime packages in the Packages category:

    Project Options: Packages

    Click the image to enlarge it.

    If you want to keep Build with runtime packages (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.

  13. 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