This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tdep/22576] New: ppc64: gdbarch_skip_trampoline_code fails for relro


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

            Bug ID: 22576
           Summary: ppc64: gdbarch_skip_trampoline_code fails for relro
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: tdep
          Assignee: unassigned at sourceware dot org
          Reporter: jan.kratochvil at redhat dot com
  Target Milestone: ---

ppc64 ld switched default norelro->relro by:
647e4d46495f2bfb0950fd1066c8a660173cca40 is the first bad commit
commit 647e4d46495f2bfb0950fd1066c8a660173cca40
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jun 22 05:37:24 2016 -0700
    ld: Add a linker configure option --enable-relro

Tested gdb: c5ba17787d077249ab7071192566a2c0205fc97f 2017-12-09

runtest gdb.reverse/solib-pr
ecsave.exp
FAIL: gdb.reverse/solib-precsave.exp: reverse-step back to main one
FAIL: gdb.reverse/solib-precsave.exp: reverse-step into solib function two
FAIL: gdb.reverse/solib-precsave.exp: reverse-step within solib function two
FAIL: gdb.reverse/solib-precsave.exp: reverse-step back to main two
FAIL: gdb.reverse/solib-precsave.exp: run until end part two
FAIL: gdb.reverse/solib-precsave.exp: reverse-next over solib function one

(gdb) PASS: gdb.reverse/solib-precsave.exp: reverse-step within solib function
one
reverse-step^M
0x00000000100005d8 in 00000017.plt_call.shr2 ()^M
(gdb) FAIL: gdb.reverse/solib-precsave.exp: reverse-step back to main one

Also reproducible as:

PASS:
gcc outputs/gdb.reverse/solib-precsave/shr2.c.o -shared -Wl,-soname,shr2.sl -g
-lm -o outputs/gdb.reverse/solib-precsave/shr2.sl -Wl,-z,norelro
../gdb -batch -data-directory ../data-directory/
outputs/gdb.reverse/solib-precsave/solib-precsave -q -ex 'b 38' -ex r -ex
record -ex n -ex reverse-step -ex reverse-step -ex 'set debug infrun 0' -ex
reverse-step 
No more reverse-execution history.
main () at
/home/fedora/jankratochvil/redhat/gdb-git/gdb/testsuite/gdb.reverse/solib-reverse.c:38
38        b[1] = shr2(17);              /* middle part two */

FAIL:
gcc outputs/gdb.reverse/solib-precsave/shr2.c.o -shared -Wl,-soname,shr2.sl -g
-lm -o outputs/gdb.reverse/solib-precsave/shr2.sl -Wl,-z,relro
../gdb -batch -data-directory ../data-directory/
outputs/gdb.reverse/solib-precsave/solib-precsave -q -ex 'b 38' -ex r -ex
record -ex n -ex reverse-step -ex reverse-step -ex 'set debug infrun 0' -ex
reverse-step 
22        return 2*x;
0x00000000100005d8 in 00000017.plt_call.shr2 ()

It is due to ppc64_skip_trampoline_code_1 does not recognizing PLT from ld -z
relro.  This makes gdbarch_skip_trampoline_code to fail (return zero).

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]