This is the mail archive of the gdb-prs@sources.redhat.com 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]

tdep/1457: PPC64 can't pass functions as parameters


>Number:         1457
>Category:       tdep
>Synopsis:       PPC64 can't pass functions as parameters
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Mon Nov 17 21:48:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     ac131313@redhat.com
>Release:        2003-11-17
>Organization:
>Environment:

>Description:
For PPC64, when doing an inferior function call, instead of passing in the address of the function descriptor, GDB passes in the address of the actual function.  This results in the called function trying to do an indirect through the parameter-function's first instruction[s].

VIS:

(gdb) PASS: gdb.base/callfuncs.exp: p t_func_values(func_val1,func_val2)
p t_func_values(add,func_val2)

Program received signal SIGSEGV, Segmentation fault.
?? ()
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 (t_func_values) will be aba
ndoned.
(gdb) XFAIL: gdb.base/callfuncs.exp: p t_func_values(add,func_val2)

(note that it is _NOT_ an XFAIL)
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


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