This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
tdep/2016: powerpc64-linux r2 set incorrectly on inferior function calls
- From: amodra at bigpond dot net dot au
- To: gdb-gnats at sources dot redhat dot com
- Date: 26 Sep 2005 10:38:25 -0000
- Subject: tdep/2016: powerpc64-linux r2 set incorrectly on inferior function calls
- Reply-to: amodra at bigpond dot net dot au
>Number: 2016
>Category: tdep
>Synopsis: powerpc64-linux r2 set incorrectly on inferior function calls
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Sep 26 10:48:06 UTC 2005
>Closed-Date:
>Last-Modified:
>Originator: Alan Modra
>Release: gdb 6
>Organization:
>Environment:
>Description:
powerpc64-linux ld supports generation of executables with multiple toc sections. If such an application is stopped in a function, and gdb makes an inferior function call to a function which uses a different toc value, then the wrong value will be used. The correct toc pointer value can be found in the called function's OPD entry (where powerpc64-linux function pointers point).
>How-To-Repeat:
eg. on debugging powerpc64-linux gcc testsuite failure..
Breakpoint 1, fancy_abort (file=0x1058d0d0 "/src/gcc-current/gcc/expr.c",
line=3929, function=0x1058d390 "expand_assignment")
at /src/gcc-current/gcc/diagnostic.c:590
(gdb) up
#1 0x00000000101b8d38 in expand_assignment (to=0x8000313f08,
from=0x8000324370) at /src/gcc-current/gcc/expr.c:3929
(gdb) p debug_tree (to)
Program received signal SIGILL, Illegal instruction.
0x0000000010677fbc in __FUNCTION__.16129 ()
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwindonsignal on"
Evaluation of the expression containing the function (debug_tree) will be abandoned.
(gdb)
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: