perf record doesn't work on -g3 binary
If we build GHC with debug information:
$ cat ./_build/hadrian.settings
stage1.*.ghc.*.opts += -g3
stage2.*.ghc.*.opts += -g3
$ hadrian/build.cabal.sh
and then build and run a test:
$ _build/stage1/bin/ghc -O -g3 nofib/shootout/n-body/Main.hs
$ perf record nofib/shootout/n-body/Main 100000000
perf report
only seems to report (quite non-sensical) addresses, not proper symbol names:
Samples: 45K of event 'cycles:u', Event count (approx.): 42707199057
Overhead Command Shared Object Symbol
20.10% Main Main [.] 0x000000000000ad78
16.30% Main Main [.] 0x000000000000ad8b
8.11% Main Main [.] 0x000000000000ad95
7.55% Main Main [.] 0x000000000000ad9e
5.96% Main Main [.] 0x000000000000ada8
...