Search code examples
profilingubuntu-14.04qt-creatorgperftools

gperftools - profile file not dumped


I've configured and built gperftools. however, I can't seem to find the generated profile file of my program to display it.

I took the following actions:

  1. Adding the -lprofiler linker flag to my .pro, building the program and the flag is added correctly at the linking stage. QMAKE_LFLAGS += -lprofiler

  2. Running with: $ CPUPROFILE=/tmp/prof.out /path/to/executable

  3. Executing: $ pprof --gv /path/to/MyExe /tmp/prof.out

Then I get the following:

Failed to get profile: curl -s --max-time 90 'http:///pprof/profile?seconds=30' > /home/eslam/pprof/.tmp.MyExe.1509005857.: No such file or directory.

Anyone has a resolve on this?


Solution

  • Check that your program actually links to libprofiler.so. Some OSes (e.g. AFAIK some versions of ubuntu) do not actually add .so if none of it's symbols are actually used. E.g. ldd ./yourprogram should list libprofiler.so. If this does not happen, then you should prepend something like -Wl,--no-as-needed to your linker flags.