summaryrefslogtreecommitdiff
path: root/gdb/infcall.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@debian.org>2009-07-28 16:38:46 +0000
committerDaniel Jacobowitz <dan@debian.org>2009-07-28 16:38:46 +0000
commit804c1b6ace85b89078e7e909b8a34ac2dbee584f (patch)
tree2dfc63abf3391c5987488b36512e0ddaa56dae55 /gdb/infcall.c
parentf8e1eb719fd04d19f43c351886ca34784673a57a (diff)
downloadgdb-804c1b6ace85b89078e7e909b8a34ac2dbee584f.tar.gz
* arch-utils.c (displaced_step_at_entry_point): Do not call
gdbarch_convert_from_func_ptr_addr. * cris-tdep.c: Remove outdated comment. * infcall.c (call_function_by_hand): Do not call gdbarch_convert_from_func_ptr_addr after entry_point_address. * objfiles.c (entry_point_address): Call both gdbarch_convert_from_func_ptr_addr and gdbarch_addr_bits_remove.
Diffstat (limited to 'gdb/infcall.c')
-rw-r--r--gdb/infcall.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/gdb/infcall.c b/gdb/infcall.c
index 479492dec29..c9d98cf65eb 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -592,11 +592,6 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
real_pc = funaddr;
dummy_addr = entry_point_address ();
- /* Make certain that the address points at real code, and not a
- function descriptor. */
- dummy_addr = gdbarch_convert_from_func_ptr_addr (gdbarch,
- dummy_addr,
- &current_target);
/* A call dummy always consists of just a single breakpoint, so
its address is the same as the address of the dummy. */
bp_addr = dummy_addr;
@@ -614,14 +609,16 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
sym = lookup_minimal_symbol ("__CALL_DUMMY_ADDRESS", NULL, NULL);
real_pc = funaddr;
if (sym)
- dummy_addr = SYMBOL_VALUE_ADDRESS (sym);
+ {
+ dummy_addr = SYMBOL_VALUE_ADDRESS (sym);
+ /* Make certain that the address points at real code, and not
+ a function descriptor. */
+ dummy_addr = gdbarch_convert_from_func_ptr_addr (gdbarch,
+ dummy_addr,
+ &current_target);
+ }
else
dummy_addr = entry_point_address ();
- /* Make certain that the address points at real code, and not
- a function descriptor. */
- dummy_addr = gdbarch_convert_from_func_ptr_addr (gdbarch,
- dummy_addr,
- &current_target);
/* 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;