Routines Category

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

The Function Trace profiler organizes results into two categories: Routines and Call Trace. When the Routines category is active, the Report panel contains descriptions for each routine that was called during the profiling. The panel contains the following columns:

Columns (in alphabetical order) Description
Address Routine’s address in memory. This column is used for unmanaged (native-code) routines only.
Analysis Result Specifies if the routine was instrumented or not. If the routine was instrumented, this column is empty. Otherwise, the column displays a short description why the routine was not instrumented:

Less than 5 bytes - The routine occupies less than 5 bytes in memory (for 32-bit applications). See Profiling Small Functions.

Less than 6 bytes - The routine occupies less than 6 bytes in memory (for 64-bit applications). See Profiling Small Functions.

No line info - The routine was added to a line-level area, but debug information does not contain info about routine lines. These routines can be profiled only at the routine level.

Unsafe code - AQTime was not able to instrument the routine safely. This typically occurs when the binary code of the routine is intermixed with data areas. See Profiling Routines That Have Unsafe Code.

No ret instruction - The routine’s binary code does not contain the ret instruction (this may happen if the routine finishes with the jmp instruction). See Profiling Routines That Do Not Have the ret Instruction.

Duplicated code - The routine whose code coincides with code of another routine. To learn more about this, see Profiling Duplicated Code.

Class Name If the routine is a method, name of the class it belongs to.
Code Type Specifies the routine's code type. The following values are possible:
  • MSIL - Managed-code routine with MSIL (Microsoft Intermediate Language) code.
  • x64 - 64-bit code routine.
  • x86 - Native-code (unmanaged) routine.
  • Pseudo - Pseudo routine that was created by the context. For example, <JIT Compiler>, <Garbage Collector>, <Unknown PInvoke> or <Root>.
  • PInvoke - Native-code routine for which there is a declaration in one of the managed modules and that is called from within unmanaged code.
  • NGen - Managed routine that was compiled by the ngen utility (CLR Native Image Generator) with the /prof argument in its command line. The ngen compilation means the routine was compiled before the application starts.
  • Script - The routine belongs to a script that was profiled along with the host application. See Profiling Scripts - Overview for details.
  • Byte-code - Java routine that was compiled into an intermediate byte-code format. See Profiling Java Applications for details.
Hit Count The number of routine calls that were profiled.
Module Name The name of the module which contains the profiled routine.
Namespace Namespace of the method’s class (this column is used for managed routines only).
Routine Name Name of the routine.
Source File Name of the source file for the method. The values for this column are read from the application’s debug info. If debug info does not contain information on the file name, the column is empty.
Source Line Source file’s line number where the routine’s implementation begins. The values for this column are read from the application’s debug info.
Token The routine’s token. This column is used for managed routines only.
Unit Name Name of the linkage unit containing the routine. This column is used only for unmanaged (native-code) routines.

Information for all routes that were used to invoke a selected routine is shown in the Details panel. See Routines Category for more information.

See Also

Function Trace Profiler - Overview
Routines Category
Arranging Columns, Lines and Panels

Highlight search results