diff options
author | Andrew Cagney <cagney@redhat.com> | 2003-08-07 23:41:57 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2003-08-07 23:41:57 +0000 |
commit | 9710e734be97ab818b961fd5d7552cf46018e2ab (patch) | |
tree | 187df03343e09db1ec9ec21d04d3e5f69962950e /gdb/infcall.c | |
parent | 98b3ab7391f408c32fb57d3c552607f92583e2bf (diff) | |
download | gdb-9710e734be97ab818b961fd5d7552cf46018e2ab.zip gdb-9710e734be97ab818b961fd5d7552cf46018e2ab.tar.gz gdb-9710e734be97ab818b961fd5d7552cf46018e2ab.tar.bz2 |
2003-08-07 Andrew Cagney <cagney@redhat.com>
* inferior.h (AT_SYMBOL): Define.
* blockframe.c (inside_entry_file): Check for AT_SYMBOL.
* infcall.c (call_function_by_hand): Add code to handle AT_SYMBOL.
* mips-tdep.c (mips_call_dummy_address): Delete function.
(mips_gdbarch_init): Set call_dummy_location to AT_SYMBOL, do not
set call_dummy_address.
Diffstat (limited to 'gdb/infcall.c')
-rw-r--r-- | gdb/infcall.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gdb/infcall.c b/gdb/infcall.c index 4fd97ae..a4a6ac1 100644 --- a/gdb/infcall.c +++ b/gdb/infcall.c @@ -547,6 +547,23 @@ call_function_by_hand (struct value *function, int nargs, struct value **args) it's address is the same as the address of the dummy. */ bp_addr = dummy_addr; break; + case AT_SYMBOL: + /* Some executables define a symbol __CALL_DUMMY_ADDRESS whose + address is the location where the breakpoint should be + placed. Once all targets are using the overhauled frame code + this can be deleted - ON_STACK is a better option. */ + { + struct minimal_symbol *sym; + + sym = lookup_minimal_symbol ("__CALL_DUMMY_ADDRESS", NULL, NULL); + real_pc = funaddr; + if (sym) + dummy_addr = SYMBOL_VALUE_ADDRESS (sym); + else + dummy_addr = entry_point_address (); + bp_addr = dummy_addr; + break; + } default: internal_error (__FILE__, __LINE__, "bad switch"); } |