Trace Libraries Your Application Uses

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

Dynamic link libraries can be linked in your application both at load time and at run time.

Finding Libraries Linked At Load Time

To find libraries linked at load time, you can use the PE Reader panel:

  1. Add your application to the AQTime project.

  2. PE Reader will determine which modules the project’s main module uses, which modules those modules use and so on and build a list of used modules.

  3. To view the list of used modules, open the PE Reader panel and switch to the Modules tabbed page.

Finding Libraries Linked At Load and Run Time

To find libraries linked in your application both at load time and at run time, you can use the Load Library Tracer profiler:

  1. Profile your application with the Load Library Tracer profiler.

  2. Generate results.

  3. The Report panel will list libraries that were loaded in memory during the application run. The panel will also report the number of loads and unloads for each library, the library size, preferred address and other characteristics.

  4. The Details panel will provide information on each load: the load address and the call stack.

Another way to find libraries that are linked in your application both at load time and at run time is to profile your application with the Performance profiler. The profiler collects information on all modules (managed and unmanaged) whose routines your application calls:

  1. Profile your application with the Performance profiler.

  2. Generate results.

  3. In the Explorer panel, select the desired thread in the Modules category of the profiling results. The Report panel shows the profiling results for each module in your application.

  4. If the Show non-hit routines button is not pressed on the ProfilerProfilerProfiler toolbar (default state for this button), the Report panel displays the modules whose routines were profiled.

  5. To display other modules whose routines your application calls in addition to those that are already given in the Report panel, press Show non-hit routines.

Note: The Performance profiler analyzes only those routines that are selected for profiling in the Setup panel. For other routines your application calls, AQTime does not gather information except for data that lets you identify the routine you need, as well as the class, namespace and module it belongs to.

There is one more way to learn functions of what libraries the application calls For .NET applications there is one more way to learn functions of what libraries the application calls - you can make AQTime profile routines of all managed modules that your application calls:

  1. Enable Entire .NET Code in the Setup panel. When this setting is on, all custom areas will be ignored, though triggers will still have effect.

  2. Use the Performance, Coverage or Allocation profiler to get the appropriate profiling results.

  3. The Module Name column of the Report panel will display names of all managed modules called.

Note: Profiling with Entire .NET Code enabled can seriously slow down your application because of the mass of information AQTime needs to collect. Once you find out which modules you need, it is recommended that you disable Entire .NET Code, add these modules to the Setup panel and specify the appropriate custom areas.

See Also

Exploring an Application's Source Code
Best Practices and How to Tutorials
Profiling System Calls
PE Reader Panel

Highlight search results