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 | 0285512f2902753c8185679567b0d0dc95c3c129 (patch) | |
tree | 227065985c6f2310d9d775eb4e9b351ad5dbfe6b /gdb/infcall.c | |
parent | cdcd555211255de4f4f1fd0d9ad0e11b16d5d81b (diff) | |
download | gdb-0285512f2902753c8185679567b0d0dc95c3c129.zip gdb-0285512f2902753c8185679567b0d0dc95c3c129.tar.gz gdb-0285512f2902753c8185679567b0d0dc95c3c129.tar.bz2 |
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 98e7da5..6baa88a 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; } |