title: How to interpret addresses in Google perf tools CPU profiler
body: <p>My C++ program is consuming a lot of CPU, and more so as it runs. I used Google Performance Tools to profile CPU usage, and this is what I got:</p>
  
  <pre><code>(pprof) top
  Total: 1343 samples
      1330  99.0%  99.0%     1330  99.0% 0x0000000801dcb11c
         7   0.5%  99.6%        7   0.5% 0x0000000801dcb11e
         4   0.3%  99.9%        4   0.3% program::threadWorker
         1   0.1%  99.9%        1   0.1% 0x0000000801dcb110
         1   0.1% 100.0%        1   0.1% 0x00007fffffffffc0
  </code></pre>
  
  <p>However, only 1 out of the 5 processes shown here is an actual function name; the rest are addresses. How can I find out what these addresses pertain to? (Of course, I am most interested in the first address shown above)</p>
  
  <p>Edit: This is how I ran the profiler:</p>
  
  <pre><code>env CPUPROFILE=prof.out ./a.out
  [kill program]
  
  pprof ./a.out prof.out
  </code></pre>
  
  <p>Also, I found the root cause by code inspection. But it would still be nice to have the profiler pinpoint the culprit function rather than an address.</p>