diff options
author | Andrew Cagney <cagney@redhat.com> | 2003-08-28 02:53:08 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2003-08-28 02:53:08 +0000 |
commit | 6ccbd9fd94af44f34b90063c380861f3d2e64ff1 (patch) | |
tree | f88ceff2f06b76ce36b85f6a0ce99e01b8734639 /gdb/infcall.c | |
parent | 3e44f89e68542205dabaad43f1529bf818a1b2f9 (diff) | |
download | gdb-6ccbd9fd94af44f34b90063c380861f3d2e64ff1.tar.gz |
2003-08-27 Andrew Cagney <cagney@redhat.com>
* ppc-linux-tdep.c (ppc64_call_dummy_address): Delete function.
(ppc_linux_init_abi): For PPC64, do not set call_dummy_address.
* infcall.c (call_function_by_hand): Convert the entry point
address into a code address.
Diffstat (limited to 'gdb/infcall.c')
-rw-r--r-- | gdb/infcall.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gdb/infcall.c b/gdb/infcall.c index 98e7da5fc3d..6baa88a337d 100644 --- a/gdb/infcall.c +++ b/gdb/infcall.c @@ -558,6 +558,9 @@ call_function_by_hand (struct value *function, int nargs, struct value **args) } real_pc = funaddr; dummy_addr = CALL_DUMMY_ADDRESS (); + /* Make certain that the address points at real code, and not a + function descriptor. */ + dummy_addr = CONVERT_FROM_FUNC_PTR_ADDR (dummy_addr); /* A call dummy always consists of just a single breakpoint, so it's address is the same as the address of the dummy. */ bp_addr = dummy_addr; @@ -576,6 +579,11 @@ call_function_by_hand (struct value *function, int nargs, struct value **args) dummy_addr = SYMBOL_VALUE_ADDRESS (sym); else dummy_addr = entry_point_address (); + /* Make certain that the address points at real code, and not + a function descriptor. */ + dummy_addr = CONVERT_FROM_FUNC_PTR_ADDR (dummy_addr); + /* A call dummy always consists of just a single breakpoint, + so it's address is the same as the address of the dummy. */ bp_addr = dummy_addr; break; } |