ARM Streamline - Unable to view source code and functions

Hi everyone,
I am using Arm Streamline to analyze a demo application running on Telechips (Linux) hardware. The capture of performance data and the charts in "Timeline" work perfectly for any demo I tried, but I’ve noticed that the profiling results do not show anything from my code in the "Call Paths", "Functions" and "Code" tabs. The function stack lists only system functions.

Where am I supposed to place the source code files? The official documentation points that in case of "No source available." message it is required to "Set Path Prefix Substitutions" where no "Captured Paths" are listed for my demo.

Here is my setup:
Arm Streamline 2025.3, Windows 10
Running on Telechips hardware, connected via TCP
The demo consists of a single C++ file that runs for a few seconds (also tested with more complex graphics examples with the same results).
Compiled with:
aarch64-telechips-linux-g++ -g3 -O0 code.cpp -fno-inline -fno-omit-frame-pointer -o code
and the executable
code: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.14.0, with debug_info, not stripped

Any guidance or best practices for getting function names and source-level details in Streamline would be greatly appreciated.

Parents
  • Hi Christian,
    Thank you for your advice. I tried the setup where I build the executable on a virtual Linux, make the record directly on the Telechips and view the capture in Streamline on Windows. Respectively using:
    - An executable:
    $ objdump --dwarf=info hello | grep DW_AT_comp_dir
    <1e> DW_AT_comp_dir : (indirect string, offset: 0x1b): /usr/src/debug/glibc/2.35-r0/git/csu
    <3e> DW_AT_comp_dir : (indirect line string, offset: 0x0): /usr/src/debug/glibc/2.35-r0/git/csu
    <514> DW_AT_comp_dir : (indirect line string, offset: 0x0): /usr/src/debug/glibc/2.35-r0/git/csu
    <558> DW_AT_comp_dir : (indirect string, offset: 0x1b): /usr/src/debug/glibc/2.35-r0/git/csu
    <578> DW_AT_comp_dir : (indirect line string, offset: 0x10e): /home/visteon/Documents/razmano1
    <722> DW_AT_comp_dir : (indirect string, offset: 0x1b): /usr/src/debug/glibc/2.35-r0/git/csu
    - Created capture with:
    ./gatord -s session.xml -c configuration.xml -x yes -o capture_hello.apc -A ./hello
    - The path substitutions:
    (the source file is in the specified folder)

    I also tested creating the executable on another machine (another computer with WSL for Windows 11), recording with the "Start capture" in Streamline, opening the capture with another Streamline version - 2025.5, turning off "Use new C++ processing backend" (from another forum post), running analysis after setting the path substitution. My attempts neither changed anything in the "Code" tab, nor any new functions under "unknown source in hello" were listed.
    Do you have any idea if I am still making any mistakes? The only noticeable problem is when I use gatord to create capture directly on the hardware (example above), timeline view does not show anything for the counters (the charts are empty).

Reply
  • Hi Christian,
    Thank you for your advice. I tried the setup where I build the executable on a virtual Linux, make the record directly on the Telechips and view the capture in Streamline on Windows. Respectively using:
    - An executable:
    $ objdump --dwarf=info hello | grep DW_AT_comp_dir
    <1e> DW_AT_comp_dir : (indirect string, offset: 0x1b): /usr/src/debug/glibc/2.35-r0/git/csu
    <3e> DW_AT_comp_dir : (indirect line string, offset: 0x0): /usr/src/debug/glibc/2.35-r0/git/csu
    <514> DW_AT_comp_dir : (indirect line string, offset: 0x0): /usr/src/debug/glibc/2.35-r0/git/csu
    <558> DW_AT_comp_dir : (indirect string, offset: 0x1b): /usr/src/debug/glibc/2.35-r0/git/csu
    <578> DW_AT_comp_dir : (indirect line string, offset: 0x10e): /home/visteon/Documents/razmano1
    <722> DW_AT_comp_dir : (indirect string, offset: 0x1b): /usr/src/debug/glibc/2.35-r0/git/csu
    - Created capture with:
    ./gatord -s session.xml -c configuration.xml -x yes -o capture_hello.apc -A ./hello
    - The path substitutions:
    (the source file is in the specified folder)

    I also tested creating the executable on another machine (another computer with WSL for Windows 11), recording with the "Start capture" in Streamline, opening the capture with another Streamline version - 2025.5, turning off "Use new C++ processing backend" (from another forum post), running analysis after setting the path substitution. My attempts neither changed anything in the "Code" tab, nor any new functions under "unknown source in hello" were listed.
    Do you have any idea if I am still making any mistakes? The only noticeable problem is when I use gatord to create capture directly on the hardware (example above), timeline view does not show anything for the counters (the charts are empty).

Children
No data