Troubleshooting report issues

If you successfully complete a capture session but have a problem with the resulting report data, consult this list of common issues.

Streamline does not show any source code in the Code view.

Make sure that you use the -g option during compilation. To match instructions to source code, Streamline must have debug symbols turned on.

If necessary, ensure that the path prefix substitutions are set correctly. See the Path Prefix Substitutions dialog box in the Code view.

Streamline does not show source code for shared libraries.

Add the libraries using the Capture Settings dialog box.

  1. In the Program Images section, click Add image.

  2. Navigate to your shared library, and select the required file.

  3. Click Open.

The data in the Call Paths view is flat. The presented table is a list rather than a hierarchy.

Use the GCC options -fno-omit-frame-pointer and -marm during compilation. -marm is only required for Arm®v7 and earlier architectures. Also, check the Call stack unwinding option in the Capture Settings dialog box.

If frame pointers are set correctly, the disassembly of the code contains instructions in the form add fp,sp,#<n> at the start of functions. To generate a disassembly, use the following command:

arm-linux-gnueabihf-objdump -d <foo>.so

Note

  • By default, Streamline does not walk the stack for kernels or loadable kernel modules. These generate flat data in the Call Paths view.

  • Streamline does not walk the stack for statically linked drivers.

Functions that you know are highly used are missing from the reports. Other functions might seem artificially large.

This problem can be because of code inlining that is done by the compiler. To turn inlining off, add -fno-inline as an option during compilation.

Also, check that your debug symbols are correct.

Functions are displayed as a separate call path instead of in the thread where they are called.

Check if the TailCall Optimization (TCO) compiler flag is enabled. Enabling TCO prevents Streamline from unwinding the call stack correctly. For more information about TCO, see Overview of optimizations in the Arm Compiler Optimization guide.

Function displayed in a separate call path when TCO is enabled

To display the functions in the correct thread, disable TCO, then recapture the Streamline profile.

Function displayed correctly when TCO is disabled

If you still need help with your capture, send the gator-log.txt file, along with your capture, to the support team. The log file is in the same directory as the capture, and is available after the capture has finished. It records basic debugging and support information, such as errors, warnings, and information about the device.

To create a gator-log.txt file for a local capture, enable the --capture-log command line option.