https://sourceware.org/bugzilla/show_bug.cgi?id=32892

            Bug ID: 32892
           Summary: source line level informatiion not available with "-g
                    -O2"
           Product: binutils
           Version: 2.44
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: gprofng
          Assignee: vladimir.mezentsev at oracle dot com
          Reporter: bruno at clisp dot org
  Target Milestone: ---

The documentation of gprofng
https://sourceware.org/binutils/docs/gprofng.html#Main-Features says: "This
tool works with unmodified production level executables. There is no need to
recompile the code, but if the ā€˜-g’ option has been used when building the
application, source line level information is available."

So, it sounds like binaries built with the options '-g -O2' should be usable
with source line level information.

This is true for valgrind (see
https://gitlab.com/ghwiki/gnow-how/-/wikis/Profiling/with_sampling ), but not
for gprofng.

How to reproduce:
1. wget https://ftp.gnu.org/gnu/gperf/gperf-3.3.tar.gz
2. tar xfz gperf-3.3.tar.gz
3. cd gperf-3.3
4. export CC=gcc; export CXX=g++; unset CFLAGS; unset CXXFLAGS; export
CPPFLAGS=-Wall
5. ./configure
6. make
Observe that the C++ source code gets compiler with "g++ -g -O2".
7. cd src
8. gp-collect-app -o test.1.er -p on -S on ./gperf -m 10 ../tests/5000.gperf >
/dev/null
9. gprofng-display-text test.1.er
(gprofng-display-text) lines
...
13.259  91.63  14.210  98.20   <Function: Search::find_asso_values(),
instructions without line numbers>
...
(gprofng-display-text) source search.cc

Expected:
Lines search.cc 1396..1402 are highlighted as CPU-intensive.

Actual:
Lines search.cc 1396..1402 are not marked in any way.

This is on Linux/x86_64, with g++ 13.3.0.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to