https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64999

--- Comment #7 from Dominik Vogt <vogt at linux dot vnet.ibm.com> ---
The "--pc" is definitely the cause of the bogus addresses.  To me it seems that
these addresses are intended to identify the function and source line from the
dwarf info, not to be printed out as a real address (which they are not).

Anyway, the printed address and source line information do not match.

  # 0x8000c595 runtime_pprof_test.TestMemoryProfiler+0x11d mprof_test.go:65

>From the disassembly (function names shortened):

   0x000000008000c584 <+268>:    brasl    %r14,0x8000c308 <allocateTransient1M>
   0x000000008000c58a <+274>:    brasl    %r14,0x8000c370 <allocateTransient2M>
   0x000000008000c590 <+280>:    brasl    %r14,0x8000c428
<allocatePersistent1K>
   0x000000008000c596 <+286>:    lghi    %r1,0

The address points to line 66 in the file, but the textual trace associates it
with line 65.  On the other hand gdb properly identifies the source line, so
the dwarf information must be correct:

  (gdb) $pc = 0x8000c595
  (gdb) p $pc
  $1 = (void (*)()) 0x8000c595 <runtime_pprof_test.TestMemoryProfiler+285>
  (gdb) bt
  #0  0x000000008000c595 in runtime_pprof_test.TestMemoryProfiler (
      t=0xf318aa800000000) at mprof_test.go:66
                              ^^^^^^^^^^^^^^^^

Reply via email to