Configuring shared library support

The integrated performance measurement tools produce results that contain statistics for individual functions. To include information about functions from shared libraries, the active tool must have access to library copies with debug symbols and possibly, profiling instrumentation.

To find these debug symbols, the tools search the paths listed in the Libraries tab. When you add a library to a project, the IDE normally adds the path with the debug version of the library to the search list. It also adds the library file to the list of files to upload to the target, defined in the Upload tab. You can strip the debug information when uploading this fileā€”the IDE just needs to find the debug symbols somewhere on the host when displaying the results.

If the automation fails, though, the user must manually specify where to find the right library files. The way to do this depends on the tool.

Note: If you're seeing line numbers for a shared library but double-clicking its function entries takes you to unexpected code locations, you have a mismatch between the host version of the library that contains debug symbols and the target version that gets loaded by the executable. You should therefore rebuild the application to link in the correct version, and verify that the Upload shared libraries list (in the Upload tab) contains the right library file.

Application Profiler

If you're not seeing function runtimes and call counts for some shared libraries in the profiling results, you must manually define the library paths using the same steps as with Memory Analysis. Note that the library versions stored at these paths must contain profiling instrumentation. The compiler and linker options required for this are different for obtaining call counts in sampling mode versus measuring precise runtimes.

Valgrind

The Valgrind tools can request debug symbols from a symbol server on the host and use this information in writing the analysis results. Usually, the server is already running so you don't need to do anything to see statistics for library functions in Cachegrind results. However, if this isn't happening for some reason, you can manually start the server or specify target paths for finding the libraries.